I was able to replicate this - at least in Custom Reports using the Created Date on Campaign Member, and indeed this field does NOT show the date the campaign member was created.
Here is Salesforce's response to the case I created:
Campaign Member Created Date is the date when the contact/lead was created. You need to use the field called Member First ...
If the date/time field in case is a converted field, there can be time zone calculation issue, as during formula compile time, the underlying system cannot determine time zone of viewer.
You can convert Time field to text as TEXT(NOW()).Byt this function returns the time with respect to the day as well as date. If we need time explicityly we may use TIMENOW()...
All you need to do is to parse the String like this:
String birthdayDate = '20170206';
Integer year = Integer.valueOf(birthdayDate.substring(0, 4));
Integer month = Integer.valueOf(birthdayDate.substring(4, 6));
Integer day = Integer.valueOf(birthdayDate.substring(6, 8));
Date dt = Date.newInstance(year, month, day);
System.debug(dt.format()); // 2/6/2017