DateTimeやDateTimeOffisetで持っている年月日時分秒をUNIX時間に変換する C#, Visual Basic のサンプルコードの紹介です。
DateTimeOffsetのToUnixTimeSeconds, ToUnixTimeMillisecondsを使用すると簡単にUNIX TIMEを取得できます。
以下に C#, Visual Basicのサンプルコードと実行結果を記します。
3つの日時をUNIX時間に変換しています。
using System; class Program { static void Main(string[] args) { // JST TimeZoneInfo jst = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time"); DateTimeOffset jst1970 = new DateTimeOffset(1970, 1, 1, 0, 0, 0, jst.BaseUtcOffset); Console.WriteLine( "JST : " + jst1970.ToString() + ", UnixTime(Seconds): " + jst1970.ToUnixTimeSeconds() + ", UnixTime(Milliseconds): " + jst1970.ToUnixTimeMilliseconds()); // UTC DateTimeOffset utc1970 = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeZoneInfo.Utc.BaseUtcOffset); Console.WriteLine( "UTC : " + utc1970.ToString() + ", UnixTime(Seconds): " + utc1970.ToUnixTimeSeconds() + ", UnixTime(Milliseconds): " + utc1970.ToUnixTimeMilliseconds()); // DateTime -> DateTimeOffset DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0); DateTimeOffset dto; dto = dt; Console.WriteLine("DateTime->DateTimeOffset UnixTime(Seconds) : " + dto.ToUnixTimeSeconds()); } }
Imports System Module Program Sub Main(args As String()) 'JST Dim jst = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time") Dim jst1970 = New DateTimeOffset(1970, 1, 1, 0, 0, 0, jst.BaseUtcOffset) Console.WriteLine( "JST : " & jst1970.ToString & ", UnixTime(Seconds): " & jst1970.ToUnixTimeSeconds & ", UnixTime(Milliseconds): " & jst1970.ToUnixTimeMilliseconds) 'UTC Dim utc1970 = New DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeZoneInfo.Utc.BaseUtcOffset) Console.WriteLine( "UTC : " & utc1970.ToString & ", UnixTime(Seconds): " & utc1970.ToUnixTimeSeconds & ", UnixTime(Milliseconds): " & utc1970.ToUnixTimeMilliseconds) 'DateTime -> DateTimeOffset Dim dt As DateTime = New DateTime(1970, 1, 1, 0, 0, 0) Dim dto As DateTimeOffset dto = dt Console.WriteLine("DateTime->DateTimeOffset UnixTime(Seconds) : " & dto.ToUnixTimeSeconds) End Sub End Module
上記サンプルコード実行結果のキャプチャになります。
以上、DateTimeOffset の ToUnixTimeSeconds, ToUnixTimeMilliseconds を使ってUNIX時間を取得するサンプルコードの紹介でした。