在Objective-C中:是否有一种简单方式,如在Excel和SAS中,将整数转换为日期时间字符串?
在Excel中,您将格式化为“mmm dd,yyyy hh:mm:ss”。
例如,如果我有整数: 1328062560
我希望输出为: 2012-01-31 21:16:00
或甚至(如在Excel中): 2012年1月31日21:16:00
PS:我不想过于苛刻,但我希望简单和内联 用于NSLog ,所以我可以简单地写一下调试 NSLog(“作为整数的时间是%d,作为日期%mmmddyyyyhh:mm:ss”,[array objectAtIndex:i],[array objectAtIndex:i]);
答案 0 :(得分:12)
你可以得到一个NSDate
这样的对象:
NSDate *date = [NSDate dateWithTimeIntervalSince1970:1328062560];
然后,如果你不关心字符串的确切格式,你可以这样做:
NSString *s = [date description];
这会给你一个像“2012-02-01 02:16:00 +0000
”这样的字符串。
如果您想要特定的字符串格式,请使用NSDateFormatter
。
答案 1 :(得分:1)
您可以使用NSDateFormatter
执行此操作。首先从整数值中创建一个字符串:
NSString *dateString = [NSString stringWithFormat:@"%d", integerDate];
然后使用相应的格式创建NSDateFormatter
:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[myDateFormatter setDateFormat:@"yyyyMMddhhmm"]; // Change to suit your format
NSDate *dateFromString = [myDateFormatter dateFromString:dateString];
然后,您可以按照所需格式将字符串检索为字符串:
[myDateFormatter setDateFormat:@"yyyy/MM/dd hh:mm"]; // Change to suit your format
NSString *stringFromDate = [formatter stringFromDate:dateFromString];
答案 2 :(得分:1)
假设整数是自纪元以来的秒数,您可以使用NSDate
的{{1}}或initWithTimeIntervalSince1970
方法创建一个dateWithTimeIntervalSince1970
对象,其中包含您的日期关心,然后使用NSDate
来展示它。