gpt4 book ai didi

cocoa - 在 NSDateFormatter 中保留时区

转载 作者:行者123 更新时间:2023-12-03 18:00:14 26 4
gpt4 key购买 nike

我必须为 DateFormatter 设置格式字符串,以将 NSString 转换为 NSDate

字符串的格式为:2011-01-31 12:45:00 +0200(y-m-d h:m:s 时区)

我使用的格式为: @"yyyy'-'MM'-'dd' 'HH':'mm':'ss' 'Z" ,但时区转换为+0000 并调整小时,因此字符串如下:2011-01-31 12:45:00 +0200 转换为:2011-01-31 10:45:00 +0000

代码在这里:

- (NSDate *) dateForString: (NSString *)dateString
{
NSDateFormatter *dateFormatter;
NSLocale *enUSPOSIXLocale;
NSDate *date;

dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
enUSPOSIXLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];

[dateFormatter setLocale:enUSPOSIXLocale];
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd' 'HH':'mm':'ss' 'Z"];
// [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
date = [dateFormatter dateFromString:dateString];
return date;
}

最佳答案

使用 NSDate 时,这绝对是预期的行为 - NSDate 代表一个时间点,因此在您的情况下,2 个日期/时间是等效的。

只需确保当您使用 dateFormatter 显示日期时,您将日期格式化程序上的时区设置为您希望的显示方式。

关于cocoa - 在 NSDateFormatter 中保留时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552097/

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