如何根據我的時區從日期時間字符串獲取時間。我的時區時間+5:30 GMT.The日期時間看起來喜歡 -如何使用日期字符串獲取時間
04/03/2013 3:30:00 AM
我想提前輸出喜歡 -
9:00:00 AM
感謝。
如何根據我的時區從日期時間字符串獲取時間。我的時區時間+5:30 GMT.The日期時間看起來喜歡 -如何使用日期字符串獲取時間
04/03/2013 3:30:00 AM
我想提前輸出喜歡 -
9:00:00 AM
感謝。
您需要兩個日期格式化程序。
一個將字符串轉換爲日期。然後日期字符串以獲得所需的時間格式。
NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *date=[dateFormatter dateFromString:@"04/03/2013 3:30:00 AM"];
NSDateFormatter *dfTime = [NSDateFormatter new];
[dfTime setDateFormat:@"hh:mm:ss a"];
NSString *time=[dfTime stringFromDate:date];
* 未編譯和檢查
中指定的「日期格式模式」。謝謝。但是它的輸出是凌晨3:30:00。我如何獲得時間與我的時區? – shivam 2013-03-06 04:49:49
@iPatel:謝謝,我剛剛在這裏直接打字,:p – 2013-03-06 04:51:15
@shivam:NSDate顯示相對於GMT。你不能把它設置爲IST。 – 2013-03-06 04:51:54
如果您有字符串的日期和時間是在GMT日期時間,那麼你需要添加GMT在您的字符串。通過這個,你可以得到你的時區的實際時間 -
NSString *dateStr = @"04/03/2013 3:30:00 AM GMT";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a ZZZ"];
NSDate *date = [dateFormatter dateFromString:dateStr];
[dateFormatter setDateFormat:@"hh:mm:ss a"];
NSString *opDateStr = [dateFormatter stringFromDate:date];
NSLog(@"op = %@",opDateStr);
NSString *strdate= @"04/03/2013 3:30:00 AM";
NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *date=[dateFormatter dateFromString:strdate];
NSDateFormatter *dfTime = [NSDateFormatter new];
[dfTime setDateFormat:@"hh:mm:ss a"];
NSString *time=[dfTime stringFromDate:date];
NSLog(@"%@",time);
NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"dd/MM/yyyy hh:mm:ss a"];
NSLog(@"%@",[formatter stringFromDate:[NSDate date]]);
輸出 2013年6月3日上午10時41分18秒
[formatter setDateFormat:@"hh:mm:ss a"];
NSLog(@"%@",[formatter stringFromDate:[NSDate date]]);
輸出 10:41:18 AM
而不是[NSDate date]傳遞所需日期進行格式化。
如你想從你根據當前時區提供的時間字符串的時候,你需要做這樣的事情
NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a zzz"];
NSDate *date=[dateFormatter dateFromString:@"04/03/2013 3:30:00 AM 0000"];
NSDateFormatter *dfTime = [NSDateFormatter new];
[dfTime setTimeZone:[NSTimeZone systemTimeZone]];
[dfTime setDateFormat:@"hh:mm:ss a"];
NSString *time=[dfTime stringFromDate:date];
NSLog(@"%@",time);
你不會得到真正的輸出,除非有偏差出現,這是0000(GMT偏移)。如果dateString和它的格式化程序的格式不同,時間格式化程序也不會完美地工作。所以你需要這樣做MM/dd/yyyy hh:mm:ss一個zzz,zzz是偏移量。現在你的輸出將是09:00:00 AM
查看'NSDateFormatter'類和它的許多有用的方法。 – Cashew 2013-03-06 04:38:26
Chk這個http://stackoverflow.com/questions/11504843/get-current-iphone-device-timezone-date-and-time-from-utc-5-timezone-date-and-ti – 2013-03-06 04:38:58
有很多類似的問題在SO本身。您需要了解http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns – Anupdas 2013-03-06 04:42:04