C#で現在のUNIX時刻を求めるプログラムのメモ書きです。
phpではtime()関数で簡単にUNIX時刻が求める事ができますが、C#ではそれと同等の機能はありません(自分が調べた範囲では・・・)
とは言っても、C#でUNIX時刻を求める事はそんなに難しいものではありません。数行のコードでできます。
まず、UNIXタイムの定義ですが、UTCでの1970年1月1日0時0分0秒(UNIXエポックタイム)からの経過秒数(閏秒を加味しない)です。
・UNIX時間(Wiki)
ということで、現在のUNIX時間を求めるには、単純に現在の時間からUNIXエポックタイムを引けばいいわけです。
そのコードを下に書きます。
//UNIXエポック時刻
public readonly static DateTime dtUnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
/// <summary>
/// 現在のUNIX時刻を作成&リターン
/// </summary>
public static long getNowUnixTime()
{
//現在時刻のDateTimeオブジェクト
DateTime dt = DateTime.Now;
//UTC時刻に変更
dt = dt.ToUniversalTime();
//現在時刻のDateTimeからUNIXエポック時刻のDateTimeを引いて、その結果を秒数で表す
return (long)dt.Subtract(dtUnixEpoch).TotalSeconds;
}
説明はコードと共にコメント書きしているので必要ないと思います・・・結局、getNowUnixTime()が現在のUNIX時刻をlong型で返してくれるということです。
・C#初心者のためのおすすめ入門書の紹介
参考サイト
・Epoch Converter (ネットで現在のUNIX時刻が見れるのでテスト・検証用に使える)
・UNIX時間をDateTime型に変換する
phpではtime()関数で簡単にUNIX時刻が求める事ができますが、C#ではそれと同等の機能はありません(自分が調べた範囲では・・・)
とは言っても、C#でUNIX時刻を求める事はそんなに難しいものではありません。数行のコードでできます。
まず、UNIXタイムの定義ですが、UTCでの1970年1月1日0時0分0秒(UNIXエポックタイム)からの経過秒数(閏秒を加味しない)です。
・UNIX時間(Wiki)
ということで、現在のUNIX時間を求めるには、単純に現在の時間からUNIXエポックタイムを引けばいいわけです。
そのコードを下に書きます。
//UNIXエポック時刻
public readonly static DateTime dtUnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
/// <summary>
/// 現在のUNIX時刻を作成&リターン
/// </summary>
public static long getNowUnixTime()
{
//現在時刻のDateTimeオブジェクト
DateTime dt = DateTime.Now;
//UTC時刻に変更
dt = dt.ToUniversalTime();
//現在時刻のDateTimeからUNIXエポック時刻のDateTimeを引いて、その結果を秒数で表す
return (long)dt.Subtract(dtUnixEpoch).TotalSeconds;
}
説明はコードと共にコメント書きしているので必要ないと思います・・・結局、getNowUnixTime()が現在のUNIX時刻をlong型で返してくれるということです。
・C#初心者のためのおすすめ入門書の紹介
- ゼロからわかる C#超入門/斉藤 友男
- ¥2,394
- Amazon.co.jp
- C#クックブック 第3版/Jay Hilyard
- ¥4,830
- Amazon.co.jp
参考サイト
・Epoch Converter (ネットで現在のUNIX時刻が見れるのでテスト・検証用に使える)
・UNIX時間をDateTime型に変換する