在iPhone上的日期字符串中,我使用什么格式字符串作为毫秒?

age*_*ped 98 iphone objective-c

我需要以包含毫秒的格式解析字符串.我使用什么格式字符串来获取正确的日期值?

例如,假设我有一个包含以下值的字符串:"2011-06-23T13:13:00.000"

我在下面的代码中传递给NSDateFormatter的格式字符串是什么?

NSString *dateValue = @"2011-06-23T13:13:00.000";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSString *formatString = @"yyyy-MM-dd'T'HH:mm:ss.???";
[formatter setDateFormat:formatString];
NSDate *date = [formatter dateFromString:dateValue];
Run Code Online (Sandbox Code Playgroud)

我用什么代替??? 在上面的代码?

Sim*_*ker 207

这是SSS,按照Unicode语言环境数据标记语言规范.

"yyyy-MM-dd'T'HH:mm:ss.SSS"
Run Code Online (Sandbox Code Playgroud)

更一般地,使用任意数量的大写S字符来获得一秒分数组件中的那么多小数位.(ss.S例如,显示时间到最接近的十分之一秒.)

  • 我想知道你是否知道如何对毫秒进行宽松的解析?日期可能有6,7甚至没有毫秒.我可以使用正则表达式,但我想知道是否可以使用正确的格式字符串开箱即用. (2认同)

Cal*_*leb 7

日期格式模式引导表明,"S"是秒的分数的格式说明.

  • +1很棒的链接,谢谢.我已经为它添加了书签.:-) (3认同)

小智 5

您需要在末尾传递相同数量的“S”,例如我的日期是“2015-11-17T03:36:45.041503Z”,我使用“yyyy-MM-dd”T'HH:mm:ss.SSSSSSz'格式化程序,我的意思是看到“S”的数字是 6 作为即将到来的 6 位数字。