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#初心者のためのおすすめ入門書の紹介
ゼロからわかる C#超入門/斉藤 友男
¥2,394
Amazon.co.jp

C#クックブック 第3版/Jay Hilyard
¥4,830
Amazon.co.jp



参考サイト
Epoch Converter (ネットで現在のUNIX時刻が見れるのでテスト・検証用に使える)
UNIX時間をDateTime型に変換する