【问题标题】:NSDateFormatter formatNSDateFormatter 格式
【发布时间】:2016-05-27 12:58:29
【问题描述】:

我正在尝试创建用于解析 Fri, 12 Feb 2016 17:09:53 +0800 (SGT) 日期格式的格式化程序。

我尝试使用EEE, dd MMM yyyy HH:mm:ss Z,但输出为空。

关于如何使用 NSDateFormatter 解析上述日期的任何想法。

提前谢谢你。

P.S - 标记在 Gmail API 中,因为我从它的响应中收到了相同的信息。

【问题讨论】:

  • 你确定你得到 null 吗?因为我尝试过,它会得到回应。
  • @JAGAT 用另一个例子做了同样的尝试 >> 2016 年 2 月 1 日星期一 23:11:25 -0800 (PST) 似乎没有用。
  • NSDateFormatter 有据可查,最新的 iOS 版本声明使用以下规范 unicode.org/reports/tr35/tr35-31/… 不幸的是,小写 z 似乎不适用于 'SGT' 但它适用于 'PST '。
  • @A-Live:是的,这似乎是问题所在。 :( 不知道如何强制 Gmail API 以正确的格式向我发送日期。
  • 您使用的是哪个 API?也许有一种方法可以指定所需的日期格式或处理响应的库。

标签: ios objective-c swift nsdateformatter gmail-api


【解决方案1】:

设置日期格式为

大写 Z 表示数字时区偏移

EEE, dd MMM yyyy HH:mm:ss ZZZ (zzz)

更多信息请参见link

【讨论】:

  • 谢谢@Anbu。这解决了一半的问题。但是,问题在于 SGT。这只会读取ESTUTC。需要弄清楚如何强制 Gmail API 以特定格式发送 Date 标头。还是谢谢你。 :)
  • @footyapps27 -- 你还需要什么兄弟,如果我知道我肯定支持你,你能解释一下你还需要什么
【解决方案2】:

最好将 TimezoneNSDate 分开处理,因为 NSDate 使用您的 local timezoneUTC timezone 存储时间点>。由您来处理这些时区。

所以我建议你把括号中的时区去掉,只解析它之前的数字时区偏移量。这样,您可以将所有字符串转换为 UTC 格式的 NSDate 实例,并且解析字符串不会有任何问题。

使用这种格式:@"ccc, d LLL YYYY HH:mm:ss Z"

Reference took from 以及有关 NSDateFormatter 的更多帮助,您可以从 this link 更轻松地创建日期格式。

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    相关资源
    最近更新 更多