【发布时间】:2018-07-16 05:52:28
【问题描述】:
在 iPhone 设备中,从我们的生产应用程序中获取客户设备的错误日期时间格式。
我们使用日期时间格式为 yyyy-MM-dd HH:mm:ss 并将空替换为 T 例外结果为 2018-07-13T15:07:36,但日期时间为 2018-07-13T3:07:36TPM
复制步骤: 获取日期时间字符串的方法
+ (NSString *)getCurrentLocalDateTime
{
NSDate *localDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:localDate];
dateString = [dateString stringByReplacingOccurrencesOfString:@" " withString:@"T"];
NSLog(@"CURR: %@", dateString);
return dateString; // yyyy-MM-ddTHH:mm:ss
}
预期结果: 输出数据必须是 - 2018-07-13T15:07:36
实际结果: 实际数据 - 2018-07-13T3:07:36TPM
iOS 版本 - 11.3.1 和 11.1.2 中出现问题
【问题讨论】:
-
有什么理由不能使用
yyyy-MM-dd'T'HH:mm:ss的格式吗? (抱歉,它在 Swift 中可用 - 不知道为什么你在字符串末尾得到pm) -
你试过设置
timezone吗? -
@iPeter 在设备中 - 时区为布里斯班。它仅在客户设备中发生,在调试时不会发生..
-
将
dateFormatter的timeZone设置为NSTimeZone *tz = [NSTimeZone defaultTimeZone];。看看它是否有效。 -
nsdateformatter.com 对测试有用
标签: ios objective-c ios11 nsdateformatter foundation