iOS DateFormat,带有毫秒和时区

时间:2017-02-15 05:38:02

标签: ios objective-c datetime nsdateformatter

我尝试使用以下格式在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";

以及毫秒和时区的一堆其他格式(我改变了S和Z的数量而没有运气。我得到的只是一个零NSString。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:3)

您的字符串时间格式为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);

输出:

xcode output

答案 1 :(得分:1)

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

尝试此代码毫秒:

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

答案 2 :(得分:1)

您还可以查看nsdateformatterDataFormatting

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