当时区不是本地时,在NSDate中设置时间00:00:00

时间:2016-04-21 07:34:48

标签: ios objective-c datetime nsdate ios9

我正在开发具有不同国家/地区用户的应用程序。例如,印度和美国。

我希望NSDate能够在任何时区都有时间。

例如,2016-03-01将在两个时区2016-03-01 00:00:00 +0000保持相同。

我正在使用

NSDate* dateOnly = [[NSCalendar currentCalendar] dateBySettingHour:0 minute:0 second:0 ofDate:[NSDate date] options:NSCalendarMatchLast];

我仍然得到这个: 2016-04-21 05:00:00 +0000

我需要2016-04-21 00:00:00 +0000

请建议妥善解决。提前谢谢。

3 个答案:

答案 0 :(得分:2)

这个应该有效

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSLog(@"%@", [dateDormatter stringFromDate:dateOnly]);

答案 1 :(得分:1)

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm";

NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setTimeZone:gmt];
NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]];

尝试以上代码行。希望它会对你有所帮助。

答案 2 :(得分:0)

你能试试吗?

  

NSTimeZone * timeZone = [NSTimeZone timeZoneWithName:@“UTC”];
  [dateFormatter setTimeZone:timeZone];

hope help you this