F# Monkey

about

.NETの時間表記のちょっとしたメモ

f:id:callmekohei00:20170409234100p:plain

Summary

.netの時間表記のちょっとしたメモ

code

こんな感じ

open System

/// このパソコンのタイムゾーンの確認
System.TimeZoneInfo.Local.Id |> printfn "%A" /// "Asia/Tokyo"


/// このパソコンに入ってるタイムゾーンの確認
System.TimeZoneInfo.GetSystemTimeZones()
|> Seq.iter ( fun n -> stdout.WriteLine n )

/// Africa/Abidjan
/// Africa/Accra
/// Africa/Addis_Ababa
/// ....




/// 日付をRFC3339形式にする関数
let toRFC3339 dt =
    System.Xml.XmlConvert.ToString( dt, System.Xml.XmlDateTimeSerializationMode.Utc )


/// RFC3339形式を普通の日付形式にする関数
let toDate rfc3339 =
    System.DateTime.Parse(rfc3339)





/// (JST)2017年4月9日11時という時刻
let JST = DateTime( 2017,4,9,11,0,0 )

JST |> stdout.WriteLine              /// 4/9/2017 11:00:00 AM
JST |> toRFC3339 |> stdout.WriteLine /// 2017-04-09T11:00:00Z


/// Convert UTC ( JST = UTC + 9 )
let UTC = JST |> System.TimeZoneInfo.ConvertTimeToUtc

UTC |> stdout.WriteLine              /// 4/9/2017 2:00:00 AM
UTC |> toRFC3339 |> stdout.WriteLine /// 2017-04-09T02:00:00Z


/// Convert EET ( EET = UTC + 3 summer, UTC + 2 winter )
let easternZone = TimeZoneInfo.FindSystemTimeZoneById("Europe/Rome")
let EET         = System.TimeZoneInfo.ConvertTime( JST ,easternZone )

EET |> stdout.WriteLine              /// 4/9/2017 4:00:00 AM
EET |> toRFC3339 |> stdout.WriteLine /// 2017-04-09T04:00:00Z
Remove all ads