2013-09-23 18 views
6

このサイトでは、これを行う方法について多くの質問があります。私の問題私が他の人のために働くように見えるとき、私は正しい日時を得られません。コードは...ダニを日付時刻に変換

long numberOfTicks = Convert.ToInt64(callAttribute); 
startDateTime = new DateTime(numberOfTicks); 

あるcallAttributeの値はそれを= 1379953111 numberOfTicks

の値を変換した後= "1379953111"

あるが、DateTimeは= {1/1/0001 12:02:17 AM}startDateTime

なってしまいます

私はダニのために同じ値を取って、それをオンラインで変換し、正しい日時を思いつきました。

私は間違っていますか?

+0

あなたはどのような価値を期待していますか? – Anthony

+0

[UNIXタイムスタンプをDateTimeに変換する方法とその逆の可能性がありますか?](http://stackoverflow.com/questions/249760/how-to-convert-unix-timestamp-to-datetime-and-vice-versa) – Romoku

+0

それはダニの数であり、秒とは関係ありません。私が期待している日時は、2011年9月23日09:18:31です。 Epoch Converterに番号を入力すると、正しい日付/時刻が戻ってきます。 – Gary

答えて

17

あなたの価値はダニの数ではないようです。私はそれがUNIXタイムスタンプだ疑い(1970年1月1日UTCからの秒数)

はここUNIXタイムスタンプから変換する機能です。

static readonly DateTime _unixEpoch = 
    new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); 

public static DateTime DateFromTimestamp(long timestamp) 
{ 
    return _unixEpoch.AddSeconds(timestamp); 
} 
+2

チェックしなくても済むように、質問の値 '1379953111'は '9/23/2013 4:18:31 PM'を返します。これは、ユーザーが最近「DateTime 。今は 'など、彼はおそらく別のタイムゾーンやカップル時間は片道または別のオフセットされています。 – Anthony

+2

Unixのエポックが定義されているので、Unixのエポックの "種類"をUtcとして指定する必要があります。 –

+0

@JonSkeet、良い点;私はコードを更新しました。 –

関連する問題