NSDateFormatter 给出了错误的小时(+8 小时)

发布于 2024-09-30 20:02:27 字数 299 浏览 6 评论 0原文

我不明白为什么我得到的是 8:00AM 而不是 00。如果我将其设置为其他时间,也会发生这种情况。

alt text

好的,我现在尝试在标签中显示 的值

[dateFormatter stringFromDate:dateTest];

,并以一种奇怪的方式显示我格式化的时间...但是如果我在断点上检查 NSDate 对象,那么它会显示 08:00:00 而不是 00:00:00;

I don't undersatnd why I get 8:00AM instead of 00. This also happens if I set it to other hours.

alt text

Ok, I now tryed to present in a label the value of

[dateFormatter stringFromDate:dateTest];

And in a wierd way it presented the time I formatted... But if I check the NSDate object on a breakpoint then it says 08:00:00 and not 00:00:00;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

骄兵必败 2024-10-07 20:02:27

我最好的猜测是您居住在美国,在指定日期使用 GMT -8 时区(也许是太平洋标准时间?)。所以日期已经被正确解析,因为它说它是 GMT。

My best guess that you live in the States, which uses GMT -8 time zone at the date specified (maybe PST?). So the date has been parse correctly already, because it said it was GMT.

兮子 2024-10-07 20:02:27

日期格式字符串错误。应该参见

"yyyy-MM-dd-HH-mm-ss"

http://unicode.org/reports/tr35/tr35-4 .html#Date_Format_Patterns

主要问题是

  • DD 是一年中的某一天,而不是一月中的某一天。因此 07 将覆盖之前设置的月份“11 月”。
  • hh 只能识别 [1, 12] 范围内的数字,其中 0 超出范围。

The dateFormat string is wrong. It should be

"yyyy-MM-dd-HH-mm-ss"

See http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns.

The main problems are

  • DD is the day of year, not day of month. So 07 will override the month "November" set previously.
  • hh can only recognize numbers in the range [1, 12], which 0 is out of range.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文