3

有没有一种简单的方法可以将 Oracle Timestamp 转换为 iPhone 上的 NSDate 对象?我已经要求我的客户给我一个时间戳为 Unix Timestamp 的数据库(双精度为 0 = 1970 年开始),但这对他们来说似乎是个问题。谢谢。

注意:您可以轻松地将 Unix Timestamp 转换为 NSDate

[NSDate dateWithTimeIntervalSince1970: timestamp]  // timestamp is a "double"

我需要做的是将 Oracle 时间戳转换为双精度时间戳,即 Unix 时间戳。其余的很容易。

更多信息:我需要使用以 Oracle Timestamp 格式表示日期的 NSString 在 iPhone 上运行 Objective-C 代码。 另一个 StackOverflow 线程建议使用 NSDateFormatter,但我不知道要使用什么格式,并且该线程中建议的格式化程序的初始化方法会为我生成警告。

4

3 回答 3

2

我不确定转换为 NSDate,但您可以轻松地将 Oracle 日期转换为 unix 时间戳。以下 SQL 片段将执行此操作:

(my_date - to_date('01/01/1970','DD/MM/YYYY')) * 86400
于 2010-02-24T16:25:53.343 回答
2

看起来我最好的选择是使用以下内容:

NSDateFormatter* formatter = [[NSDateFormatter alloc] init];    
[formatter setDateFormat:@"MM/dd/yyyy HH:mm a"];

我不确定 Oracle 时间戳有多少差异,所以如果上述方法有问题,我很想知道。

感谢其他答案。我将保留这个问题以邀请其他方法。

于 2010-02-24T17:30:55.950 回答
2

很遗憾您已经接受了该答案,但这是最好的方法:

NSDate *dateTraded = [NSDate dateWithTimeIntervalSince1970 :[timestampVal integerValue]];

...其中 timestampVal 是一个表示时间戳值的 NSString 对象。

于 2011-02-04T17:55:21.057 回答