iOS 带毫秒和时区的日期格式

iOS DateFormat with milliseconds and timezone

我正在尝试为 ios 应用格式化 objective-c 中的日期格式:

2017-02-15T16:32:59.9725843+11:00 

运气不好。我试过:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone localTimeZone]];
formatter.dateFormat = @"yyyy-MM-dd'T'hh:mm:ss.SSSSSSSZZZZZ";

formatter.dateFormat = @"yyyy-MM-dd'T'hh:mm:ss.fffffffZZZZZ";

以及一堆其他格式的毫秒和时区(我已经改变了 Ss 和 Zs 的数量,但没有运气。我得到的只是一个 nil NSString。

如有任何帮助,我们将不胜感激。

您的字符串时间格式是 24 小时制,因此请在此处使用 HH:mm:ss. hh:mm:ss.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone localTimeZone]];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSSSSSZZZZZ";
NSDate *getDate  = [formatter dateFromString:@"2017-02-15T16:32:59.9725843+11:00"];

NSLog(@"getDate == %@",getDate);

输出:

它是 .SSS,毫秒检查也是这个 Unicode Locale Data Markup Language spec

尝试此代码几毫秒:

"yyyy-MM-dd'T'HH:mm:ss.SSS"

您还可以检查nsdateformatter and DataFormatting

NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setTimeZone:[NSTimeZone localTimeZone]];
dateformatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSSSSSZZZZZ";
NSString *currentDate  = [dateformatter stringFromDate:[NSDate date]];

NSLog(@"current Date :%@ ",currentDate);

输出:

current Date :2017-02-15T11:35:11.7790000+05:30