为什么我不能这么节省时间

时间:2014-03-23 04:39:25

标签: objective-c nsdateformatter

    strTime=@"13:00";


    NSDateFormatter * df = [[NSDateFormatter alloc]init];
    [df setDateFormat:@"hh:mm"];
    NSDate * date = [df dateFromString:strTime];

一切似乎都很好。

然而,日期的内容是零。

为什么?

我做错了什么?

我还改为@“HH:mm”

    NSDateFormatter * df = [[NSDateFormatter alloc]init];
    [df setDateFormat:@"HH:mm"];
    NSDate * date = [df dateFromString:strTime];

结果如下:

(lldb) po strTime
13:00
(lldb) po date
2000-01-01 06:00:00 +0000
(lldb) po strTime
15:45
(lldb) po date
2000-01-01 08:45:00 +0000

我想我想要更接近今天的日期

1 个答案:

答案 0 :(得分:4)

我认为你做错了什么都没有阅读足够的文档。但它实际上相当模糊。 Data Formatting Guide§8 Date Format Pattern, in Unicode Technical Standard #35指向{{3}},其中说明h

  

小时[1-12]。当在骨架数据中或在API中传递的骨架中用于灵活的日期模式生成时,它应该与区域设置(h或K)优选的12小时循环格式匹配;它不应该与24小时循环格式(H或k)匹配。使用hh进行零填充。

并且说H

  

小时[0-23]。当在骨架数据中或在API中传递的骨架中用于灵活的日期模式生成时,它应该与区域设置(H或k)优选的24小时循环格式匹配;它不应该与12小时循环格式(h或K)匹配。使用HH进行零填充。

因此,您应该尝试使用HH:mm作为格式:

[df setDateFormat:@"HH:mm"];