将整数转换为日期字符串

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:我不想要求太高,但我希望 simpleinline 在 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】:

假设整数是从纪元开始的秒数,您可以使用NSDateinitWithTimeIntervalSince1970dateWithTimeIntervalSince1970 方法创建一个带有您关心的日期的NSDate 对象,然后使用@987654325 @ 来美化它以供展示。

【讨论】:

以上是关于将整数转换为日期字符串的主要内容,如果未能解决你的问题,请参考以下文章

c语言将日期转换为字符串 急求,谢谢!

将 DateTime 转换为整数

如何用JS判断某个字符串可以转换成日期?

熊猫:将 dtype 'object' 转换为 int

如何将日期(“Ymd”)的输出转换为 PHP 中的数字? [复制]

将 iSeries 日期设置为下个月 1 日后将其转换为字符串