我需要以包含毫秒的格式解析字符串。我使用什么格式字符串来获取正确的日期值?
例如,假设我有一个包含以下值的字符串:“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];
我用什么代替???在上面的代码?
答案 0 :(得分:206)
SSS
,符合Unicode Locale Data Markup Language spec。
"yyyy-MM-dd'T'HH:mm:ss.SSS"
更一般地说,使用任意数量的大写S字符来获取一秒分数组件中的那么多小数位。 (例如,ss.S
将显示最接近十分之一秒的时间。)
答案 1 :(得分:6)
Date Format Patterns guide表明“S”是分数秒的格式说明符。
答案 2 :(得分:4)
你需要在最后传递相同数量的'S',例如我的日期'2015-11-17T03:36:45.041503Z'我使用'yyyy-MM -dd'T'HH:mm:ss.SSSSSSz'格式化程序,我的意思是看到'S'的数字是6,因为日期是6位数。
答案 3 :(得分:-1)
将fff
用于第二个
"yyyy-MM-dd'T'HH:mm:ss.SSS"