如何将NSString hexInterval转成NSTimeInterval进行日期转换
How to turn NSString hexInterval into NSTimeInterval for date conversion
目前,我正在使用以下格式的现有 NSDates 数组:
NSDate *today = [NSDate date]; //today is used as an example
NSTimeInterval interval = [today timeIntervalSince1970];
NSString *hexInterval = [NSString stringWithFormat:@"%08x", (int)interval];
NSLog(@"hexInterval %@", hexInterval);
日期以 4ec2acf0
.
等格式输出
我的目标是将它们转回 NSDates,因为它们来自 NSTimeInterval,我想知道如何将它转回 NSTimeIntervals,因为我只有这些 8 个字符的 NSStrings。
我的目标是:
//Turn NSString into NSTimeInterval here, then:
NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval];
谢谢!
你可以用 NSScanner
解析十六进制,像这样:
unsigned res = 0;
NSScanner *scanner = [NSScanner scannerWithString:hexInterval];
[scanner scanHexInt:&res];
NSTimeInterval interval = (NSTimeInterval)res;
// Once you have an interval, use your code:
NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval];
请注意,此方法会截断 NSTimeInterval
的时间部分。当您在此行将 NSTimeInterval
转换为 int
时会发生这种情况:
NSString *hexInterval = [NSString stringWithFormat:@"%08x", (int)interval];
目前,我正在使用以下格式的现有 NSDates 数组:
NSDate *today = [NSDate date]; //today is used as an example
NSTimeInterval interval = [today timeIntervalSince1970];
NSString *hexInterval = [NSString stringWithFormat:@"%08x", (int)interval];
NSLog(@"hexInterval %@", hexInterval);
日期以 4ec2acf0
.
我的目标是将它们转回 NSDates,因为它们来自 NSTimeInterval,我想知道如何将它转回 NSTimeIntervals,因为我只有这些 8 个字符的 NSStrings。
我的目标是:
//Turn NSString into NSTimeInterval here, then:
NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval];
谢谢!
你可以用 NSScanner
解析十六进制,像这样:
unsigned res = 0;
NSScanner *scanner = [NSScanner scannerWithString:hexInterval];
[scanner scanHexInt:&res];
NSTimeInterval interval = (NSTimeInterval)res;
// Once you have an interval, use your code:
NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval];
请注意,此方法会截断 NSTimeInterval
的时间部分。当您在此行将 NSTimeInterval
转换为 int
时会发生这种情况:
NSString *hexInterval = [NSString stringWithFormat:@"%08x", (int)interval];