如何在不同的时区从NSDate获取正确的字符串?

时间:2015-11-07 08:42:27

标签: ios objective-c nsstring nsdate nsdateformatter

我需要来自单个NSDate的七个连续日期字符串。这就是我做的,

for (int i = 0; i < 7; i++) {
    NSString *dayOfWeek = [self returnStringFromDate:currentDate withStringFOrmat:@"dd - EEEE"];
    [daysOfWeekArray addObject:[dayOfWeek uppercaseString]];
    currentDate = [currentDate dateByAddingTimeInterval:60 * 60 * 24];
}

- (NSString *)returnStringFromDate:(NSDate *)date
             withStringFOrmat:(NSString *)stringFOrmat {
  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
  [dateFormatter setLocale:locale];
  [dateFormatter setDateFormat:stringFOrmat];
  NSString *dateString = [dateFormatter stringFromDate:date];
  return dateString;
}

我来自印度,如果我有自己的时区(印度标准时间)并将当前日期作为01 / sun / nov / 2015传递 - 它的日志记录为2015-10-31 18:30:00 +0000,则上述代码正常运行。如果我将时区更改为美国时区(CST),则当前日期将记录为2015-11-01 05:00:00 +0000,它将为字符串返回一个日期。如果我试试

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:stringFOrmat];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSString *dateString = [dateFormatter stringFromDate:date];

它正在工作,
但是我怎样才能确定我现在的时区? 是否可以使用一些通用代码从设备的当前时区找到正确的日期字符串?

0 个答案:

没有答案