如何将英国时间转换为墨西哥时区
how to convert Uk time to Mexico time zone
我有一个数组,该日期在英国时区。我想将英国时区转换为低于国家时间。我有两个单选按钮
Mexico (UTC-6)
India - IST (UTC+5.30)
当我单击 Mexico (UTC-6)
单选按钮时,我的数组日期转换为墨西哥时区,当我单击 India - IST (UTC+5.30)
单选按钮时,我的数组日期转换为印度时区。
我的数组[0] 时区日期是2015-04-17 10:29:22 +0000
这是英国时区。
请帮助我编码,这是我第一次进行时区处理。
试试这个可能会有帮助...在这里你需要传递时区名称
NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithName:@"Europe/London"];
NSTimeZone* destinationTimeZone = [NSTimeZone timeZoneWithName:@"America/Mexico_City"];
NSDate *yourDate = [NSDate date]; // Please add here your date that you want change .
//calc time difference
NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:yourDate];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:yourDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
//set current real date
NSDate* date = [[NSDate alloc] initWithTimeInterval:interval sinceDate:yourDate];
此处列出所有时区All iOS TimeZone
试试这个有用的...
NSDate
没有时区,因此您的 NSDate
不在英国时区。 NSDate
是绝对时间参考。这意味着如果您调用 [NSDate date]
并且世界另一端的某个人在同一时间调用它,那么你们都会得到相同的结果。
时区仅在显示日期时存在,但它们不是 NSDate
的一部分。
如果你想显示墨西哥时区的日期,你可以这样做:
NSDate *date = // your NSDate here
NSTimeZone *myZone = [NSTimeZone timeZoneWithName:@"America/Mexico_City"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
[dateFormatter setTimeStyle:NSDateFormatterLongStyle];
[dateFormatter setTimeZone:myZone];
NSString *dateString = [dateFormatter stringFromDate:date];
如果您想获取其他时区的日期,只需更改第一行以使用不同的时区。例如,在印度,您可以使用
NSTimeZone *myZone = [NSTimeZone timeZoneWithName:@"Asia/Kolkata"];
我有一个数组,该日期在英国时区。我想将英国时区转换为低于国家时间。我有两个单选按钮
Mexico (UTC-6)
India - IST (UTC+5.30)
当我单击 Mexico (UTC-6)
单选按钮时,我的数组日期转换为墨西哥时区,当我单击 India - IST (UTC+5.30)
单选按钮时,我的数组日期转换为印度时区。
我的数组[0] 时区日期是2015-04-17 10:29:22 +0000
这是英国时区。
请帮助我编码,这是我第一次进行时区处理。
试试这个可能会有帮助...在这里你需要传递时区名称
NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithName:@"Europe/London"];
NSTimeZone* destinationTimeZone = [NSTimeZone timeZoneWithName:@"America/Mexico_City"];
NSDate *yourDate = [NSDate date]; // Please add here your date that you want change .
//calc time difference
NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:yourDate];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:yourDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
//set current real date
NSDate* date = [[NSDate alloc] initWithTimeInterval:interval sinceDate:yourDate];
此处列出所有时区All iOS TimeZone 试试这个有用的...
NSDate
没有时区,因此您的 NSDate
不在英国时区。 NSDate
是绝对时间参考。这意味着如果您调用 [NSDate date]
并且世界另一端的某个人在同一时间调用它,那么你们都会得到相同的结果。
时区仅在显示日期时存在,但它们不是 NSDate
的一部分。
如果你想显示墨西哥时区的日期,你可以这样做:
NSDate *date = // your NSDate here
NSTimeZone *myZone = [NSTimeZone timeZoneWithName:@"America/Mexico_City"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
[dateFormatter setTimeStyle:NSDateFormatterLongStyle];
[dateFormatter setTimeZone:myZone];
NSString *dateString = [dateFormatter stringFromDate:date];
如果您想获取其他时区的日期,只需更改第一行以使用不同的时区。例如,在印度,您可以使用
NSTimeZone *myZone = [NSTimeZone timeZoneWithName:@"Asia/Kolkata"];