我寫了一個函數來獲取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