【问题标题】:Why my NSDateFormatter returns null?为什么我的 NSDateFormatter 返回 null?
【发布时间】:2013-01-13 12:16:50
【问题描述】:

为什么我的 NSDateFormatter 返回 null? 这是我的代码:

  NSString *dateString = @"21-12-2012 11:05:15";
  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  [dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss"];
  NSDate *dateFromString = [[NSDate alloc] init];
  dateFromString = [dateFormatter dateFromString:dateString];

  [dateFormatter setDateFormat:@"dd/MM/yyyy"];
  NSString *strDate = [dateFormatter stringFromDate:dateFromString];

我的strDate 返回

21/12/2012

但是当:

NSString *dateString = @"13-12-2012 13:17:58";

我的strDate 返回null

这很奇怪,有人遇到过吗?

【问题讨论】:

  • 声明:NSDate *dateFromString = [[NSDate alloc] init]; 是不必要的,下一条语句会覆盖它,只需使用:NSDate *dateFromString = [dateFormatter dateFromString:dateString];
  • 是的,你是对的,我会重构我的代码。谢谢

标签: ios nsdateformatter


【解决方案1】:

使用 HH 代替 hh。

hh 通常是 12 小时制,而 HH 通常是 24 小时制。

[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];

一个很好的官方参考,as linked by Apple themselves,是here。另一个好表是 here,正如 Zaph 所提到的。

【讨论】:

【解决方案2】:

你应该使用

[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];

【讨论】:

  • 感谢愤世嫉俗的我,但我会接受另一个答案,因为这是第一个答案..无论如何再次感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多