ios - 长日期(UNIX 日期)问题

标签 ios objective-c date nsdate

问题如下: 该应用程序的快速详细信息:根据日期对数据进行排序(升序)。

来自 Web 服务的 UNIX 日期/长日期,采用 JSON 形式(13 位数字)。解析长日期时,我得到无效的日期值。

长日期:1428498595000 转换日期:Sun, 26 Apr 47237 13:16:40(解析后) [注意年份]

使用在线转换器时(示例):http://www.onlineconversion.com/unix_time.htm ,再现相同的输出。 我的目的是让日期按升序排序,但不幸的是,由于年份显示不相关,因此无法排序。

长日期1428498595(手动删除三个零在网站上测试后):Wed, 08 Apr 2015 13:09:55 GMT(这是需要显示的正确日期)

任何人都可以帮助我了解可以做什么,以便我们可以手动删除最后三个零吗? 【将解析后的数据存储在SQLite中,然后在UITableView中生成存储的数据】

这是在 AppDelegate 中

+(NSString * )convertUnixTime_to_SytemTime :(NSTimeInterval )timeInterval
{
    NSDate * convertedDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"YYYY-MM-DD";
    NSTimeZone *localTime = [NSTimeZone systemTimeZone];
    [dateFormatter setTimeZone:localTime];
    NSString *timeStamp = [dateFormatter stringFromDate:convertedDate];
    return timeStamp;
}

这是代码

data.News_LastModifiedDate = [AppDelegate convertUnixTime_to_SytemTime:[[subcomponents objectAtIndex:2] doubleValue]];

提前致谢。

最佳答案

日期/时间以 UNIX 纪元以来的毫秒为单位,而不是秒。您可以除以 1000.0 以保留秒小数部分(如果出现过):

NSTimeInterval seconds = (NSTimeInterval)1428498595000 / 1000.0;

编辑。要解决您问题的其他方面:

Storing the parsed data in SQLite and then producing the stored data in UITableView

按原样存储;作为 64 位 int

+(NSString * )convertUnixTime_to_SytemTime :(NSTimeInterval )timeInterval

此方法不会将 UNIX 时间转换为系统时间;它将日期格式化为字符串(从外观来看是错误的)。算了,只使用第一行代码:

NSDate * convertedDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];

其中 timeInterval 是如上所述转换为秒的原始数字。您希望将日期作为字符串的唯一时间是在演示期间,而不是在处理期间。

关于ios - 长日期(UNIX 日期)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30530697/

相关文章:

如果小时数小于 10,JavaScript 会在小时数之前显示零

objective-c - iPhone 中的网页 View

ios - 如何在 iOS 中本地化数字?

objective-c - ios使用对象返回一个函数并使用它

java - 将字符串转换为适当的数据类型

java - 获取一年中给定月份的第一天的开始时间和最后一天的结束时间的长值

ios - 如何在单元格中设置 UILabel 相对于图像的位置

iOS map 套件 : Code Refactoring with minor adjustment

objective-c - NSPushOnPushOffButton 不停留 "Pushed In"

objective-c - 基于 ARC 的应用程序中的过早释放