【问题标题】:Date format for 2016-10-20T13:01:47.3172016-10-20T13:01:47.317 的日期格式
【发布时间】:2016-11-07 10:20:29
【问题描述】:

这就是我试图从字符串 2016-10-20T13:01:47.317 获取日期但得到nil

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
dateString = [dateString substringToIndex:dateString.length - 3];
[dateFormatter1 setDateFormat:@"YYYY-MM-ddTHH:mm:ss"];
NSDate *date = [dateFormatter1 dateFromString:dateString]; 

也尝试了 yyyy,但仍然为零。
我无法理解 .317 所以我从字符串中删除了它。这应该是什么日期格式?

【问题讨论】:

  • (这是ISO 8601 格式。.317 只是几分之一秒。)

标签: ios objective-c nsdate nsdateformatter


【解决方案1】:

.317 表示毫秒使用SSS

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"yyyy-MM-ddTHH:mm:ss.SSS"]; // or omit the timezone use `yyyy-MM-dd'T'HH:mm:ss.SSS`
 NSDate *date = [dateFormatter1 dateFromString:dateString]; 

【讨论】:

  • 所以这是一个:yyyy-MM-dd'T'HH:mm:ss.SSS
  • @Nitish - 正确,否则使用您当地的时区省略T
【解决方案2】:

您需要在代码中使用此 DateFormatter yyyy-MM-dd'T'HH:mm:ss.SSS

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
NSDate *date = [dateFormatter1 dateFromString:dateString]; 

这里的日期不为零

【讨论】:

  • 如果你使用yyyy-MM-dd'T'HH:mm:ss.SSS 那么你不能省略 dateString.length - 3]
  • 那是字符串`2016-10-20T13:01:47.317`
  • 好的,我明白了,他正在删除最后三个字符。
  • 如果要删除 3 个字符,请使用 yyyy-MM-dd'T'HH:mm:ss
【解决方案3】:

尽量使用日期格式

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
NSDate *date = [dateFormatter1 dateFromString:dateString]; 

【讨论】:

  • 这里的z有什么用
【解决方案4】:

试试这个删除毫秒:

NSString *dateString = @"your string";
NSDateFormatter* dateFormatter1 = [[NSDateFormatter alloc] init];
dateFormatter1.dateFormat = @"YYYY-MM-ddTHH:mm:ss.SSS";
NSDate *yourDate = [dateFormatter1 dateFromString:dateString];
dateFormatter1.dateFormat = @"YYYY-MM-ddTHH:mm:ss";
NSLog(@"%@",[dateFormatter1 stringFromDate:yourDate]);

【讨论】:

  • 时区在哪里T
  • 对不起,我不得不改变它。现在试试我的更新答案
  • 第二个dateFormatter1.dateFormat有什么用处 = @"YYYY-MM-ddTHH:mm:ss";在这里
  • 它是用来删除你的最后 3 位数字
猜你喜欢
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 2017-12-28
  • 2023-04-06
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 2023-02-22
相关资源
最近更新 更多