【问题标题】:How Do You Figure Out What the Date Format Is For a Given NSString?你如何弄清楚给定 NSString 的日期格式是什么?
【发布时间】:2014-02-24 09:35:11
【问题描述】:

嘿 StackOverflow 的人,

我有一个日期时间戳 NSString,它具有从后端服务器获得的以下值:

NSString *date = @"2014-01-27T21:06:59.000-05:00";

我一生都无法弄清楚上面字符串的日期格式是什么,并且一直在尝试使用具有以下两种日期格式的 NSDateFormatter 对象(它们都返回给我 nil) :

格式一:@"yyyy-MM-ddThh:mm:ss.000-05:00";

格式2:@"yyyy-MM-ddThh:mm:ss.SSS-SS:SS";

我的问题是:你到底是如何使用已经给定的字符串来确定你正在使用的日期格式?

【问题讨论】:

  • -05.00 可能是与 UTC 的偏移量,即时区信息。

标签: objective-c nsstring nsdateformatter


【解决方案1】:

试试这个,它有效:

@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"

-05:00 是时区,您需要为此使用ZZZZZ

另外,因为T 不是日期的一部分,您需要对其进行转义,为此使用'T'

注意HH 而不是hh

在这里找到所有带有示例的格式化程序:

http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns

关于你如何知道格式的问题,你必须根据你所看到的来猜测它,或者问提供那个日期的人。

【讨论】:

  • 实际上,对于格式为-##:## 的时区,您要使用ZZZZZ,而不是v
  • 另外,使用unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns 查看当前的格式说明符。这是官方参考。
  • 根据文档,v 适用于格式为PT 的时区。查看您链接到的文档。
  • 你们所有人都很棒。我不知道如何在格式字符串模板中转义字符。对此信息向您表示感谢!我已经成功格式化了!
猜你喜欢
  • 2021-11-30
  • 1970-01-01
  • 2015-12-26
  • 1970-01-01
  • 2014-02-01
  • 2010-11-24
  • 2015-06-08
  • 1970-01-01
  • 2017-04-11
相关资源
最近更新 更多