gpt4 book ai didi

ios - 这些是什么类型的日期?

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

我有一个格式为日期的 plist:

Mar 11, 2013 10:16:31 AM

在我的控制台中显示为

2013-03-11 16:16:31 +0000

而网络服务返回的内容在控制台中看起来像这样:

2013-03-01T18:21:45.231Z

如何将我的 plist 日期固定为与网络服务相同的格式?

最佳答案

关于您的三种日期格式:

  1. 当您在 Xcode 的 plist 中查看 NSDate 时,第一个只是日期格式,这是当前语言环境中人类可读的日期(但如果您在文本编辑器,你会看到它实际上是用 @"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'" 格式编写的)。

  2. 第二个是 description 方法的默认格式 NSDate(例如,您 NSLog NSDate)。

  3. 第三个是RFC 3339/ISO 8601格式(几分之一秒),通常用于网络服务。

参见 Apple 的 Technical Q&A QA1480 .

顺便说一句,该技术说明不包括毫秒,因此您可能希望使用类似 @"yyyy'-'MM'-'dd'T'HH':'mm':' 的内容ss'.'SSS'Z'",例如:

NSDate *date = [NSDate date];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = enUSPOSIXLocale;
formatter.dateFormat = @"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'";
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSString *dateString = [formatter stringFromDate:date];
NSLog(@"%@", dateString);

如果你想在 plist 中将日期存储为 RFC 3339/ISO 8601 格式的字符串(或者,如果你需要将 NSDate 转换为字符串以进行传输,你可以使用它到您的网络服务)。如上所述,默认的 plist 格式不会为 NSDate 对象保留几分之一秒,因此如果这很关键,将日期存储为由上述代码生成的字符串可能会很有用。

并且这个日期格式化器可用于将日期转换为字符串(使用 stringFromDate),以及将正确格式化的字符串转换为 NSDate 对象(使用 dateFromString )。

关于ios - 这些是什么类型的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16046541/

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