• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:59:37 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我从我的 Web API 获得以下 NSString"2013-12-03T19:13:56+00:00"

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

+ (NSDate *)dateFromUTCFormattedDateStringNSString *)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];
}



Best Answer-推荐答案


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

@"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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap