objective-c - ObjC Date 始终返回 2017 年 12 月 25 日

标签 objective-c xcode cocoa

需要以下代码的帮助:

self.dateTimestamp = userInfo[@"timestamp"];<- Returns UTC Time April 09 2018 11:09
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd YYYY HH:mm"];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormat setCalendar:[NSCalendar currentCalendar]];
NSDate *dte = [dateFormat dateFromString:self.dateTimestamp];
NSLog(@"Date: %@", dte); <-Date: Sun Dec 24 11:09:00 2017

为什么我的日期存在差异。

最佳答案

只需将 YYYY 替换为 yyyy:

NSString *dateTimestamp = @"April 09 2018 13:07";

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd yyyy HH:mm"];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormat setCalendar:[NSCalendar currentCalendar]];

NSDate *dte = [dateFormat dateFromString:dateTimestamp];

NSLog(@"Date: %@", dte);

结果:2018 年 4 月 9 日星期一 13:07:00

但是使用时

[dateFormat setDateFormat:@"MMMM dd YYYY HH:mm"];

正在记录:2017 年 12 月 24 日星期日 13:07:00

关于objective-c - ObjC Date 始终返回 2017 年 12 月 25 日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49731756/

相关文章:

ios - uitableview 在像 Yahoo Mail App 这样的标题下淡出单元格

ios - 使用 -fobjc-arc-exceptions 编译的文件中的快速枚举异常安全吗?

ios - 重新编译现有的 objective c 库以支持 arm8

swift - 为什么我在 ViewController.swift 文件中看不到添加到 Storyboard的对象?

cocoa - 如何检查特定日期是否存在?

ios - 取消对 View 的多次触摸

ios - 如何在通知内容扩展中单击按钮时打开两个特定的 View Controller ?

ios - XCode 不遵守 "iOS Distribution"代码签名实体设置

objective-c - 在 Cocoa 中制作具有静态垂直尺寸的 CustomView

objective-c - NSMatrix 委托(delegate)