Having consulted with support and solved this issue via email I am posting the solution:
CleverTap returns user profile properties originally set from NSDate as NSStrings using epoch-formatting - the time in seconds since 1970.
One can convert them to NSDate as follows:
NSMutableString *mEpochString = [[cleverTap profileGet:kDatePropertyString] mutableCopy];
NSDate *date = nil;
if (epochString) {
NSRange range = [mEpochString rangeOfString:@"$D_"];
if (range.location != NSNotFound) {
[mEpochString deleteCharactersInRange:range];
if ([mEpochString length] > 9) { date = [NSDate dateWithTimeIntervalSince1970:[mEpochString doubleValue]]; }
}
}
Feel free to improve the validation checks - this is just a sketched example.