【问题标题】:NSDateFormatter not giving expected resultsNSDateFormatter 没有给出预期的结果
【发布时间】:2014-06-26 09:36:24
【问题描述】:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd MMM YYYY"];
NSLog(@"formatted date %@",[formatter dateFromString:@"14 Oct 2013"]);

我正在尝试格式化 2013 年 10 月 14 日的日期,以从中获取 NSDate 对象。但由于某种原因,它没有按预期格式化。 这是我在控制台上登录后得到的日期对象,

formatted date 2012-12-22 18:30:00 +0000

我在这里做错什么了吗?

【问题讨论】:

  • 似乎您需要在调用 dateFromString 之前将日期格式化程序样式设置为“中”,使用 [formatter setDateStyle:NSDateFormatterMediumStyle];正如这个问题的回答:stackoverflow.com/questions/10518659/…

标签: ios objective-c nsdateformatter


【解决方案1】:

您应该使用小写字母 yyyy,因为大写字母表示基于一周的日历年,您应该指定时区:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd MMM yyyy"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[formatter setTimeZone:gmt];
NSLog(@"formatted date %@",[formatter dateFromString:@"14 Oct 2013"]);

【讨论】:

  • 28 秒前,我正要按下 post answer
  • 明白了!非常感谢 :) 为我节省了很多时间
猜你喜欢
  • 2020-05-29
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
  • 2021-01-06
  • 2018-12-08
  • 1970-01-01
相关资源
最近更新 更多