Objective-c 根据某一个时区的时间获取特定时区的时间

//获取默认时区的时间字符串
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];


/*[b]将系统默认时间转换称某个特别时区的时间[/b][color=darkred][/color][size=x-large][/size]
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];
[fromTimeZone release];
[date_fromTimeZone release];

NSString *toTimeZone = [[NSString alloc] initWithString:@"America/Adak"];
[dateFormatter2 setTimeZone:[NSTimeZone timeZoneWithName:toTimeZone]];
NSString *dateStrDst = [dateFormatter2 stringFromDate:dateOfGMT];
NSLog(@"dateStrDst %@", dateStrDst);
[toTimeZone release];


[dateFormatter2 release];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值