输入字符串:2012年6月14日 - 01:00:00 UTC如何UTC日期字符串转换为本地时间(systemTimeZone)
输出本地字符串:2012年6月13日 - 21:00:00 EDT
我喜欢让从
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
NSLog(@"Time Zone: %@", destinationTimeZone.abbreviation);
任何建议偏移?
输入字符串:2012年6月14日 - 01:00:00 UTC如何UTC日期字符串转换为本地时间(systemTimeZone)
输出本地字符串:2012年6月13日 - 21:00:00 EDT
我喜欢让从
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
NSLog(@"Time Zone: %@", destinationTimeZone.abbreviation);
任何建议偏移?
采取了这种应该做你需要的东西:
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"LLL d, yyyy - HH:mm:ss zzz";
NSDate *utc = [fmt dateFromString:@"June 14, 2012 - 01:00:00 UTC"];
fmt.timeZone = [NSTimeZone systemTimeZone];
NSString *local = [fmt stringFromDate:utc];
NSLog(@"%@", local);
请注意,您的示例不正确:在UTC时间是6月14日上午1点,它仍然是6月13日在EST,8 PM st晚上或晚上9点夏令时。在我的系统这个程序打印
Jun 13, 2012 - 21:00:00 EDT
这可以转换成从格林尼治标准时间为当地时间,你可以修改它有点为UTC时间
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm";
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setTimeZone:gmt];
NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"MMMM d, yyyy - HH:mm:ss zzz"; // format might need to be modified
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
[dateFormatter setTimeZone:destinationTimeZone];
NSDate *oldTime = [dateFormatter dateFromString:utcDateString];
NSString *estDateString = [dateFormatter stringFromDate:oldTime];
斯威夫特3
var dateformat = DateFormatter()
dateformat.dateFormat = "LLL d, yyyy - HH:mm:ss zzz"
var utc: Date? = dateformat.date(fromString: "June 14, 2012 - 01:00:00 UTC")
dateformat.timeZone = TimeZone.current
var local: String = dateformat.string(from: utc)
print(local)
斯威夫特4:日期延长UTC或GMT⟺本地
//UTC or GMT ⟺ Local
extension Date {
// Convert local time to UTC (or GMT)
func toGlobalTime() -> Date {
let timezone = TimeZone.current
let seconds = -TimeInterval(timezone.secondsFromGMT(for: self))
return Date(timeInterval: seconds, since: self)
}
// Convert UTC (or GMT) to local time
func toLocalTime() -> Date {
let timezone = TimeZone.current
let seconds = TimeInterval(timezone.secondsFromGMT(for: self))
return Date(timeInterval: seconds, since: self)
}
}