gpt4 book ai didi

ios8 时区解析改变了吗?

转载 作者:行者123 更新时间:2023-11-29 12:19:43 25 4
gpt4 key购买 nike

在 iOS8 中对时区的解析有变化吗?

我尝试解析日期“2014-09-03 12:20:38.000 +0200”

使用此代码并得到 nil:

-(NSDateFormatter*) dateAndTimeFormatter{
if(!_dateAndTimeFormatter){
_dateAndTimeFormatter = [[NSDateFormatter alloc]init];
[_dateAndTimeFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS ZZZZZ"];
_dateAndTimeFormatter.dateStyle = NSDateFormatterShortStyle;
_dateAndTimeFormatter.timeStyle = NSDateFormatterShortStyle;
}
return _dateAndTimeFormatter;
}

或者

[_dateAndTimeFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS Z"]; 

也不行。

最佳答案

设置 dateStyletimeStyle 将覆盖您设置的任何自定义 dateFormat。您的日期字符串在任何方面都不符合 NSDateFormatterShortStyle,这就是您在尝试将字符串转换为日期时得到 nil 的原因。

此外,根据Unicode Technical Standard #35 revision 31 ,“ZZZZZ”的时区说明符对应于格式为“-08:00”或“-07:52:58”的日期字符串,而不是示例中的“+0200”。匹配“+0200”的说明符之一是具有一到三个大写“Z”字符的说明符。

这应该适合你:

- (NSDateFormatter *)dateAndTimeFormatter {
if (!_dateAndTimeFormatter) {
_dateAndTimeFormatter = [[NSDateFormatter alloc] init];
[_dateAndTimeFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS ZZZ"];
}
return _dateAndTimeFormatter;
}

另请注意,您的代码在 iOS 8 之前也不能正常工作。

关于ios8 时区解析改变了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30981843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com