gpt4 book ai didi

ios - 将时区感知 .isoformat() 日期时间字符串转换为 NSDate

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:38:13 24 4
gpt4 key购买 nike

我从我的网络 API 得到以下 NSString:@"2013-12-03T19:13:56+00:00"

我想获取这个 NSString 并使用 NSDateFormatter 创建相应的 NSDate。对于我的生活,我无法弄清楚可以帮助我做到这一点的格式化字符串。我总是得到零。这是我正在尝试的:

+ (NSDate *)dateFromUTCFormattedDateString:(NSString *)dateString
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"YYYY-MM-ddThh:mm:ssTZD"];
// Apply the date formatter and return it.
return [dateFormatter dateFromString:dateString];
}

最佳答案

一个问题是嵌入了“:”的时区。使用以下日期格式:

@"yyyy-MM-dd'T'HH:mm:sszzz"

请注意,'zzz' 代替了 'TZD'。

请参阅 ICU 用户指南:Formatting Dates and Times

enter image description here

测试:

NSString *dateString = @"2013-12-03T19:13:56+00:00";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:sszzz"];

NSDate *dateFromString = [dateFormatter dateFromString:dateString];
NSLog(@"dateFromString: %@", dateFromString);

NSLog输出:

dateFromString: 2013-12-03 19:13:56 +0000

关于ios - 将时区感知 .isoformat() 日期时间字符串转换为 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20339441/

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