【问题标题】:Date formatting in iOS 9 not working [duplicate]iOS 9 中的日期格式不起作用 [重复]
【发布时间】:2016-01-01 03:47:56
【问题描述】:

我在 iOS 9 中遇到日期格式问题,它在 iOS 8 上运行良好,当我在 iOS 9 的模拟器中测试它时也可以正常工作,但是当在 iOS 9 的真实设备上测试它时,我' 得到空。下面是我正在使用的代码

NSLog(@"String Date: '%@'", stringDate);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *date = [dateFormat dateFromString:stringDate];
NSLog(@"Date: %@", date);

在日志中我得到:

String Date: '8/29/2015 4:13:39 PM'
Date: (null)

另外,如果我使用大写 h(H 或 HH),我总是得到那个小时是 10。

【问题讨论】:

    标签: objective-c nsdateformatter ios9


    【解决方案1】:

    尝试在您的日期格式化程序上设置区域设置。

    [dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
    

    来自Apple Documentation

    如果您使用的是固定格式的日期,则应首先设置 日期格式化程序的区域设置为适合您的固定 格式。在大多数情况下,选择的最佳语言环境是 en_US_POSIX, 专门为生成美国英语结果而设计的语言环境 无论用户和系统偏好如何。

    编辑: Swift 版本

    dateFormat.locale = NSLocale(localeIdentifier: "en_US_POSIX")
    

    【讨论】:

    • 这将如何在 swift 上运行?
    • 请看我更新的帖子。 @YestayMuratov
    猜你喜欢
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多