将整数转换为日期字符串
Posted
技术标签:
【中文标题】将整数转换为日期字符串【英文标题】:Convert integer to a date string 【发布时间】:2012-02-23 18:50:41 【问题描述】:在 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:我不想要求太高,但我希望 simple 和 inline 在 NSLog 中使用,所以我可以简单地编写用于调试 NSLog("时间为整数%d,日期为%mmmddyyyyhh:mm:ss", [array objectAtIndex: i], [array objectAtIndex: i]);
【问题讨论】:
【参考方案1】:你可以像这样得到一个NSDate
对象:
NSDate *date = [NSDate dateWithTimeIntervalSince1970:1328062560];
那么,如果你不关心字符串的确切格式,你可以这样做:
NSString *s = [date description];
这会给你一个像“2012-02-01 02:16:00 +0000
”这样的字符串。
如果您需要特定的字符串格式,请使用NSDateFormatter
。
【讨论】:
这对我来说很好,虽然我没有将它与 NSLog 一起使用。谢谢! 如何更改此日期的格式以及如何删除+0000??请帮忙 “如果您想要特定的字符串格式,请使用NSDateFormatter
。”【参考方案2】:
您可以使用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];
【讨论】:
顺便说一句:我想为 NSLog 做“内联”,而 not 必须有 3 或 4 行 alloc 和 init,并创建一个字符串,然后是 NSDateFormatter。 @user945869,欢迎来到我猜的“Apple 方式”。 :p 由于他们控制着发布渠道,开发人员无法选择具有他们喜欢的功能的替代语言或框架。尽可能出去。 ;) 我#define 一个宏来做我的日志记录,我可以在那里添加我想要的任何代码,然后取消定义它而不是删除最终版本的所有日志行。 Henrik:谢谢你幽默的方法。我正在深入,但我认为会有一种快速而肮脏的方式来格式化时间;例如stringDate = put(timeIntervalSince1970, ddmmmyyyy.);就像在 SAS 中所做的那样。彼得又名 user945869【参考方案3】:假设整数是从纪元开始的秒数,您可以使用NSDate
的initWithTimeIntervalSince1970
或dateWithTimeIntervalSince1970
方法创建一个带有您关心的日期的NSDate
对象,然后使用@987654325 @ 来美化它以供展示。
【讨论】:
以上是关于将整数转换为日期字符串的主要内容,如果未能解决你的问题,请参考以下文章