gpt4 book ai didi

带有 CST 的 iOS dateFromString 在设备上不起作用

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

我需要将 NSString @"2014-02-26 16:56:03 -06:00 CST" 转换为 NSDate。尝试过 "yyyy-MM-dd HH:mm:ss zzz zzz" 但没有成功。我认为问题出在 zzz zzz 部分。

这是我的代码:

NSString *string = @"2014-02-26 16:56:03 -06:00 CST";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateFormat = @"yyyy-MM-dd HH:mm:ss zzz zzz";
NSDate *date = [df dateFromString: string];

仅在使用设备时日期为零。在模拟器上一切正常。

最佳答案

我设法在设备上获取正确的日期值,但我必须采取解决方法。基本上,如果时区缩写(例如 "CST")位于字符串中,则日期格式化程序无法解析日期。我查看了 Apple 文档并查看了 Unicode Technical Standard #35 。但是我找不到可行的模式。

此问题的解决方法是删除时区缩写。然后一切都会按预期进行。

NSString *string = @"2014-02-26 16:56:03 -06:00 CST";
NSMutableArray *components = [[string componentsSeparatedByString:@" "] mutableCopy];

// Remove the time zone abbreviation.
[components removeLastObject];
string = [components componentsJoinedByString:@" "];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZZ";

NSDate *date = [dateFormatter dateFromString: string];

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

关于带有 CST 的 iOS dateFromString 在设备上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22064578/

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