问题如下:
应用程序的快速详细信息:根据日期对数据进行排序(升序)。
来自 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]];
非常感谢。
Best Answer-推荐答案 strong>
日期/时间是自 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/
|