【问题标题】:Parsing GMT-5 +DST with NSDateFormatter使用 NSDateFormatter 解析 GMT-5 +DST
【发布时间】:2012-09-05 16:28:39
【问题描述】:

我很难将日期从字符串转换为以下格式的 NSDate:

2012-09-05 12:00 GMT-5 +DST

到目前为止,我有这个代码:

NSString *myDateStr = @"2012-09-05 12:00 GMT-5 +DST";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-DD HH:mm:ss Z"];
NSDate *date = [formatter dateFromString:myDateStr];

我无法控制日期字符串的格式,因为它来自 API。

我是否需要编写一个自定义格式化程序来解析这个?

【问题讨论】:

  • 如果您已经解决了您的问题.. 使用我的解决方案.. 请接受

标签: iphone ios date


【解决方案1】:

将您的日期字符串传递给此函数,该函数将返回 NSDate 对象。

您可以重新检查是否得到正确的值,因为GMT-5 +DST 与 CDT 相同Reference

将时区设置为 CDT 会得到相同的结果。

-(NSDate *)timeConvert:(NSString *)string
{
      NSString *firstString = [string substringToIndex:16];
      NSString *lastString = [string substringFromIndex:17];

      NSLog(@"%@, %@", firstString, lastString);
      NSTimeZone *timeZone = [NSTimeZone  timeZoneWithName:lastString];
      NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
      [formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
      [formatter setTimeZone: timeZone];

      NSDate *date = [formatter dateFromString:firstString];

      return date;
}

【讨论】:

    猜你喜欢
    • 2012-04-20
    • 2010-12-23
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 2016-07-23
    相关资源
    最近更新 更多