Я написал функцию для получения строки времени UTC, соответствующей любой строке времени, переданной в качестве аргумента функции.Получение времени UTC в любое время и обработка летнего времени, а также
+(NSString *)getUTCTime:(NSString *)selectedTime
{
NSString *strFormat;
if ([self is24HourFormat:selectedTime]){
strFormat = @"HH:mm";
}
else{
strFormat = @"hh:mm a";
}
NSLocale *baseLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDateFormatter *dateFormatterlocal = [[NSDateFormatter alloc] init];
[dateFormatterlocal setTimeZone:[NSTimeZone systemTimeZone]];
dateFormatterlocal.locale = baseLocale;
[dateFormatterlocal setDateFormat:strFormat];
NSDate *selectedDate = [dateFormatterlocal dateFromString:selectedTime];
NSDateFormatter *dateFormatterUTC = [[NSDateFormatter alloc] init];
[dateFormatterUTC setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
dateFormatterUTC.locale = baseLocale;
[dateFormatterUTC setDateFormat:strFormat];
NSString *utcTimeString = [dateFormatterUTC stringFromDate:selectedDate];
return utcTimeString;
}
Это работает отлично для Мумбаи, Индия часовой пояс. Но если я изменю часовой пояс на Лондон, он возвращает меня в то же время, когда я передаю аргумент функции. В настоящее время это UTC + 1 в Лондоне. Делает NSDateFormatter
ручкой летнего времени?
В чем же необходимость? вам нужно время в utc формате? – Lion
Мне нужно отправить время UTC, соответствующее выбранному времени от пользователя к серверу. –
По определению UTC не имеет часового пояса. Думаю, вы имели в виду GMT + 1. – Avi