【问题标题】:iOs - error with NSDateFormatteriOs - NSDateFormatter 错误
【发布时间】:2015-06-05 10:44:33
【问题描述】:

我有一个值为2015-05-31 22:00:00 UTC 的日期(我从一个值为"01-06-2015" 的NSString 解析它并给出该值),当我解析它时它变成01-06 为什么??

我需要在 nextdate 获取值 = 2015-06-1 22:00:00 UTC,因为我需要获取星期几

代码:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"es_ES"];

[dateFormatter setDateFormat:@"dd-MM-yyyy"];
[dateFormatter setLocale:enUSPOSIXLocale];

NSDate *nextDate = [theCalendar dateByAddingComponents:comps2 toDate:date2 options:0];

NSString* primeraFecha = [dateFormatter stringFromDate:nextDate];

运行时的值

【问题讨论】:

  • 您是否为格式化程序设置了时区?
  • 不,我该怎么做?
  • 这不取决于comps2date2 的设置吗?
  • 是的,但是 comps2 很好,问题是答案所说的时区

标签: ios nsdate date-format


【解决方案1】:

试试这段代码,

NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormatter setTimeZone:[[NSTimeZone alloc] initWithName:@"Europe/London"]];
return [dateFormatter dateFromString:dateString];

【讨论】:

    【解决方案2】:

    您应该设置格式化程序的时区:

    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    

    【讨论】:

      猜你喜欢
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      相关资源
      最近更新 更多