#author("2020-04-30T21:21:30+09:00","","") #author("2020-04-30T21:23:21+09:00","","") #navi(../) * UNIX時間をDateTimeOffset, DateTimeにする [#pbe40028] UNIX時間をDateTimeOffset、DateTimeにするサンプルコードを C#, Visual Basic で紹介ます。 #contents * 参考サイト [#oaf692ae] * 関連サイト [#oaf692ae] -[[Microsoft .NET | DateTimeOffset 構造体>https://docs.microsoft.com/ja-jp/dotnet/api/system.datetimeoffset]] -[[Microsoft .NET | DateTime 構造体>https://docs.microsoft.com/ja-jp/dotnet/api/system.datetime]] #htmlinsert(windev-top.html) * 関連記事 [#ge8f4f4b] -[[UNIX時間への変換・DateTimeOffset>.NET/UNIX時間への変換・DateTimeOffset]] * 動作確認環境 [#e26a2f7d] -Windows 10 -Visual Studio 2019 -.NET Core 3.1 -コンソールアプリケーション * UNIX時間をDateTimeOffset, DateTimeを使って変換 [#y5b17bae] 以下のサンプルコードでは、DateTimeOffset の ''FromUnixTimeSeconds'' を使って UNIX時間をDateTimeOffset、 DateTime で使用できるようにします。~ 本サンプルコードでは、紹介していませんが、ミリ秒の FromUnixTimeMilliseconds もあります。~ サンプルコードの動作は以下の通りです。 + UNIX時間に0を指定 + DateTimeOffsetの''FromUnixTimeSeconds''を使って変換 + DateTimeOffsetの日時を表示(0なので 1970/1/1 0:0:0 になります。) + ローカル時間を指定し、DateTimeOffsetの日時を表示しています。~ ToLocalTimeを使っているので、私の環境では日本時間となっているため、+9時間表示となります。 + DateTimeOffsetをDateTimeに代入し日時を表示しています。 ** C# [#ca5fbfa6] using System; class Program { static void Main(string[] args) { long unixtime = 0L; DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(unixtime); Console.WriteLine("DateTimeOffset : " + dto.ToString()); Console.WriteLine("DateTimeOffset(JST): " + dto.ToLocalTime().ToString()); DateTime dt = dto.DateTime; Console.WriteLine("DateTime : " + dt.ToString()); } } ** Visual Basic [#kefb7e05] Module Program Sub Main(args As String()) Dim unixtime As Long = 0L Dim dto As DateTimeOffset = DateTimeOffset.FromUnixTimeSeconds(unixtime) Console.WriteLine("DateTimeOffset : " & dto.ToString()) Console.WriteLine("DateTimeOffset(JST): " & dto.ToLocalTime().ToString()) Dim dt As DateTime = dto.DateTime Console.WriteLine("DateTime : " + dt.ToString()) End Sub End Module ** 実行結果 [#c3273a11] 上記のサンプルコードを実行した時のキャプチャになります。 #ref(run.png) 以上、UNIX時間をDateTimeOffset, DateTime に変換するサンプルコードでした。 #htmlinsert(windev-btm.html)