web-dev-qa-db-ja.com

C#で正しいタイムスタンプを取得する方法

私が書いたように私は私のアプリケーションで有効なタイムスタンプを取得したいのですが。

public static String GetTimestamp(DateTime value)
{
    return value.ToString("yyyyMMddHHmmssffff");
}
//  ...later on in the code
String timeStamp = GetTimestamp(new DateTime());
Console.WriteLine(timeStamp);

出力:

000101010000000000

私は以下のようなものが欲しかった:

20140112180244

私は何をしましたか。

112

あなたの間違いはnew DateTime()を使用しています、それは現在の日時の代わりに00:00:00.000で0001年1月1日を返します。現在の日付と時刻を取得するための正しい構文は DateTime.Now なので、これを変更します。

String timeStamp = GetTimestamp(new DateTime());

これに:

String timeStamp = GetTimestamp(DateTime.Now);
158
ekad
var Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
22
Mohamed.Abdo
var timestamp = DateTime.Now.ToFileTime();

この答え自体は「良い」わけではありませんが、それほど冗長ではありませんが、既に提供されているものと同様の結果を提供する代替の答えです。 UNIX時間ではありませんが、windows filetimeを使用して、個別のトランザクションを個別化することができます。

6
Jeff Li

Int32 unixTimestamp =(Int32)(DateTime.UtcNow.Subtract(new DateTime(1970、1、1)))。TotalSeconds;

DateTime.UtcNowは、unixタイムスタンプを取得したいDateTimeオブジェクトに置き換えることができます。

0
sachin