gpt4 book ai didi

objective-c - NSDate 和 NSDateFormatter 返回无效的 CFStringRef

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

我有一个关于 NSDate 和 NSDateFormatter 的问题。

来自这个 NSString

NSString *startDate = @"Thu, 19 Apr 2012 13:09:56 +0000";

我会获得一个用当前语言环境本地化的日期,例如“2012 年 4 月 19 日星期四 13:09”。我已经详细说明了这段代码,但“endDate”字符串返回 nil(在调试器中获取“无效的 CFStringRef”)。

[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];
NSDate *dateFromString = [dateFormatter dateFromString:startDate];

[dateFormatter setDateFormat:@"EEE dd MMM yyyy HH:mm"];
[dateFormatter setLocale:[NSLocale currentLocale]];

NSString *endDate = [dateFormatter stringFromDate:dateFromString];

错误在哪里?

亚历克斯。

最佳答案

代码似乎是在非美国语言环境中执行的。我使用非美国语言环境。我也有相同的 nil 输出。

看来我们需要在 setDateFormat: 之前 setLocale:

下面的代码工作正常:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
NSLocale *usLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
[dateFormatter setLocale:usLocale];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];

关于objective-c - NSDate 和 NSDateFormatter 返回无效的 CFStringRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10348226/

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