【问题标题】:In what format is this date string?这个日期字符串是什么格式的?
【发布时间】:2013-04-25 15:29:26
【问题描述】:

我试图将一堆 NSStrings 转换为 NSDate 对象。这是一个示例字符串:

2013-04-25T15:51:30.427+1.00

但我无法弄清楚它是什么格式,到目前为止我有(问号是我被难住的位):

yyyy-MM-ddTHH:mm:ss????zzz

我遇到的主要问题是“.427”部分,但如果我在其他地方犯了错误,请告诉我:)

有人有什么想法吗?或者可以指出所有可能的日期格式说明符的列表?我发现了这个:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx 这很有用,但它似乎没有我坚持的“.427”部分的任何说明符。

感谢您的帮助。

【问题讨论】:

    标签: ios nsdateformatter date-format date-formatting iso8601


    【解决方案1】:

    正确的格式是yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ

    Unicode Date Format Patterns

    此外,+00:00 时区格式的 ZZZZZ 格式已添加到 iOS 6,并且在 iOS 5 或更早版本下不受支持。

    【讨论】:

      【解决方案2】:

      根据W3,它是 ISO 8601 指定的有效日期格式

      格式如下。此处显示的组件必须是 现在,正是这个标点符号。注意出现“T” 从字面上看,在字符串中,表示时间的开始 元素,如 ISO 8601 中所述。

      年份: YYYY(例如 1997) 年和月: YYYY-MM(例如 1997-07) 完成日期: YYYY-MM-DD(例如 1997-07-16)完整的日期加上小时和分钟: YYYY-MM-DDThh:mmTZD (例如 1997-07-16T19:20+01:00) 完整的日期加上小时、分钟和秒: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00) 完整的日期加上小时、分钟、秒和 a 的小数部分 第二 YYYY-MM-DDThh:mm:ss.sTZD(例如 1997-07-16T19:20:30.45+01:00)

      地点:

       YYYY = four-digit year
       MM   = two-digit month (01=January, etc.)
       DD   = two-digit day of month (01 through 31)
       hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
       mm   = two digits of minute (00 through 59)
       ss   = two digits of second (00 through 59)
       s    = one or more digits representing a decimal fraction of a second
       TZD  = time zone designator (Z or +hh:mm or -hh:mm)
      

      在您的情况下,日期具有毫秒精度,请尝试在格式中添加 .sss

      【讨论】:

      • 这些不是用于NSDateFormatter 的正确格式说明符。
      • @rmaddy 问题的标题实际上是“这个日期字符串的格式是什么?”而我的回答正是如此。
      • 但问题是针对 iOS 并用 NSDateFormatter 标记的。所以答案应该适合那个设置。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多