NSTimeZone获取当前时间问题
2014-04-08 12:07
369 查看
//获取默认时区的时间字符串
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *nowStr = [formatter stringFromDate:[NSDate date]];
NSLog(@"now time without setting TimeZone\n Default TimeZone: %@, Local Time %@",[formatter timeZone], nowStr);
NSDate *nowGMT = [formatter dateFromString:nowStr];
NSLog(@"当地时间->标准时间%@",nowGMT);
NSLog(@"标准时间->当地时间%@",[formatter stringFromDate:nowGMT]);
//获取特定时区的时间字符串
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"America/Adak"]];
NSString *AmericanNow = [formatter stringFromDate:[NSDate date]];
NSLog(@"now time with certain timezone: %@ Local Time %@", [formatter timeZone], AmericanNow);
NSDate *AmericanGMT = [formatter dateFromString:AmericanNow];
NSLog(@"特定时区的时间->标准时间%@",AmericanGMT);
NSLog(@"标准时间->特定时区的时间%@",[formatter stringFromDate:AmericanGMT]);
[formatter release];
/*将系统默认时间转换称某个特别时区的时间
Step1:获取系统默认时间的时间字符串
*/
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:SS"];
NSString *defaultNowStr = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"获取系统默认时间的时间字符串%@", defaultNowStr);
/*
Step2:获取标准时间
*/
NSDate *dateGMT = [dateFormatter dateFromString:defaultNowStr];
NSLog(@"获取标准时间%@",dateGMT);
/*将标准时间转换称特定时区的时间
*/
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"America/Adak"]];
NSString *localDateStr = [dateFormatter stringFromDate:dateGMT];
NSLog(@"将标准时间转换称特定时区的时间%@",localDateStr);
[dateFormatter release];
//将某个时区的特定时间转化称另一个时区的对应时间
/*
该例子将时区Asia/Tokyo的2011-12-30 16:45:00转化为
时区America/Adak的相应时间
*/
NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
[dateFormatter2 setDateFormat:@"yyyy-MM-dd HH:mm:SS"];
NSString *fromTimeZone = [[NSString alloc] initWithString:@"Asia/Tokyo"];
NSString *date_fromTimeZone = [[NSString alloc] initWithString:@"2011-12-30 16:45:00"];
[dateFormatter2 setTimeZone:[NSTimeZone timeZoneWithName:fromTimeZone]];
NSDate *dateOfGMT = [dateFormatter2 dateFromString:date_fromTimeZone];
NSString *toTimeZone = [[NSString alloc] initWithString:@"America/Adak"];
[dateFormatter2 setTimeZone:[NSTimeZone timeZoneWithName:toTimeZone]];
NSString *dateStrDst = [dateFormatter2 stringFromDate:dateOfGMT];
NSLog(@"dateStrDst %@", dateStrDst);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *nowStr = [formatter stringFromDate:[NSDate date]];
NSLog(@"now time without setting TimeZone\n Default TimeZone: %@, Local Time %@",[formatter timeZone], nowStr);
NSDate *nowGMT = [formatter dateFromString:nowStr];
NSLog(@"当地时间->标准时间%@",nowGMT);
NSLog(@"标准时间->当地时间%@",[formatter stringFromDate:nowGMT]);
//获取特定时区的时间字符串
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"America/Adak"]];
NSString *AmericanNow = [formatter stringFromDate:[NSDate date]];
NSLog(@"now time with certain timezone: %@ Local Time %@", [formatter timeZone], AmericanNow);
NSDate *AmericanGMT = [formatter dateFromString:AmericanNow];
NSLog(@"特定时区的时间->标准时间%@",AmericanGMT);
NSLog(@"标准时间->特定时区的时间%@",[formatter stringFromDate:AmericanGMT]);
[formatter release];
/*将系统默认时间转换称某个特别时区的时间
Step1:获取系统默认时间的时间字符串
*/
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:SS"];
NSString *defaultNowStr = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"获取系统默认时间的时间字符串%@", defaultNowStr);
/*
Step2:获取标准时间
*/
NSDate *dateGMT = [dateFormatter dateFromString:defaultNowStr];
NSLog(@"获取标准时间%@",dateGMT);
/*将标准时间转换称特定时区的时间
*/
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"America/Adak"]];
NSString *localDateStr = [dateFormatter stringFromDate:dateGMT];
NSLog(@"将标准时间转换称特定时区的时间%@",localDateStr);
[dateFormatter release];
//将某个时区的特定时间转化称另一个时区的对应时间
/*
该例子将时区Asia/Tokyo的2011-12-30 16:45:00转化为
时区America/Adak的相应时间
*/
NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
[dateFormatter2 setDateFormat:@"yyyy-MM-dd HH:mm:SS"];
NSString *fromTimeZone = [[NSString alloc] initWithString:@"Asia/Tokyo"];
NSString *date_fromTimeZone = [[NSString alloc] initWithString:@"2011-12-30 16:45:00"];
[dateFormatter2 setTimeZone:[NSTimeZone timeZoneWithName:fromTimeZone]];
NSDate *dateOfGMT = [dateFormatter2 dateFromString:date_fromTimeZone];
NSString *toTimeZone = [[NSString alloc] initWithString:@"America/Adak"];
[dateFormatter2 setTimeZone:[NSTimeZone timeZoneWithName:toTimeZone]];
NSString *dateStrDst = [dateFormatter2 stringFromDate:dateOfGMT];
NSLog(@"dateStrDst %@", dateStrDst);
相关文章推荐
- Cocoa 获取当前时区 (NSTimeZone)
- (笔记)linux c获取当前时间的函数gettimeofday(毫秒微秒)
- System.currentTimeMillis,getTimeInMillis与new Date().getTime获取当前时间戳耗时比较
- JS代码获取当前日期时支持IE,不兼容FF和chrome,解决这个问题,我们需要把获取时间的getYear()函数换成getFullYear()
- C++ Get Current Time 获取当前时间
- gettimeofday() -- 获取当前时间
- php获取当前时间晚8个小时的问题
- 获取 当前时间的字符串 asctime localtime time
- 大一新生第一次写java程序,用System.currentTimeMillis() 获取当前时间
- System.currentTimeMillis,getTimeInMillis与new Date().getTime获取当前时间戳耗时比较
- time(NULL)与GetLocalTime获取当前时间
- JAVA获取当前系统时间System.currentTimeMillis()
- Android 用Time和Calendar获取系统当前时间
- linux下使用gettimeofday获取当前时间的注意事项
- VC++获取当前系统时间日期 GetSystemTime()函数的用法
- VC++获取当前系统时间日期 GetSystemTime()函数的用法
- java使用new Date()和System.currentTimeMillis()获取当前时间戳
- 关于获取当前时间出现1970年问题的解决
- thinkphp-关于获取当前时间的问题,模板引擎为smarty
- System.currentTimeMillis,getTimeInMillis与new Date().getTime获取当前时间戳耗时比较