I have two activities.
First calls second like this:
Intent intent = new Intent(this, Second.class);
startActivityForResult(intent, 1);
I also ran into this and found the answer in the comments. To make it more discoverable for the next guy, let's restate as answer:
You must read the same data-type as you put in.
Just call this lines before calling super.onFinish() or wherever you exit the previous activity
Intent intent = getIntent();
intent.putExtra("Date",dateSelected);
setResult(RESULT_OK, intent);