3

iPhoneでOracle TimestampをNSDateオブジェクトに変換する良い+簡単な方法はありますか? タイムスタンプが Unix タイムスタンプ (0 で倍増 = 1970 年開始) の DB を顧客に提供するように依頼しましたが、顧客にとっては問題のようです。ありがとう。

注: Unix タイムスタンプを NSDate に簡単に変換するには、

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

私がする必要があるのは、Oracle タイムスタンプを double、別名 Unix タイムスタンプに変換することです。残りは簡単です。

詳細: Oracle Timestamp 形式で日付を表す NSStrings を使用して 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

あなたがすでにその答えを受け入れたことは残念ですが、これが最善の方法です:

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

...ここで、timestampVal はタイムスタンプ値を表す NSString オブジェクトです。

于 2011-02-04T17:55:21.057 に答える
2

私の最善の策は、次を使用することです。

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

Oracle のタイムスタンプにどの程度の差異があるかはわかりません。そのため、上記のアプローチに問題がある場合は、知りたいです。

他の回答ありがとうございます。他のアプローチを招待するために、質問を開いたままにします。

于 2010-02-24T17:30:55.950 に答える