2017-02-28 10 views
2

そこには関数/ライブラリ/簡単スニペットがありますか?F#のUnix TimeStampにDateTimeを変換する方法は?

私はF#のおかげ

例えばPython用の答えを見つけましたが、いませんでした、私はラウンドここ http://tryfs.net/snippets/snippet-r6

open System 

let toDateTime (timestamp:int) = 
    let start = DateTime(1970,1,1,0,0,0,DateTimeKind.Utc) 
    start.AddSeconds(float timestamp).ToLocalTime() 
+3

https://msdn.microsoft.com/en-us/library/system.datetimeoffset.fromunixtimeseconds.aspx – ildjarn

+2

(上記リンクの)UnixTimeからの変換方法は、.NET 4.6.xで追加されました。最新のバージョンをターゲットにしてください。 – s952163

答えて

4

timestampは何か他のものであるかもしれないので、あなたは注意する必要があり、他の方法を見つけましたintより。しかし、.NET 4.6.xでは、コメントで参照されている関数を使用できるはずです。

.NET 4.6.2

ここでは例です:

open System 
let unix = DateTimeOffset(DateTime.Now).ToUnixTimeSeconds() //val unix : int64 = 1488254491L 
let dt = DateTimeOffset.FromUnixTimeSeconds(unix) //val dt : DateTimeOffset = 2017/02/28 4:01:31 +00:00 
dt.LocalDateTime //val it : DateTime = 2017/02/28 13:01:31 
ToUnixTimeSecondsとして

FromUnixTimeSecondsはそれで仕事をしたり、必要に応じてDateTimeに/前後の変換のいずれか、DateTimeOffset上で動作します。

ところで私は、.fsxファイルでintellisenseがこれらのメソッド(しかし動作します)のためにちょっと薄れていることを発見しました。 .fsファイルでは問題ありません。

+1

以前のバージョン(#NET 4.5)を使用する必要がある場合はどうすればよいですか? –

+0

@FaguiCurtain私はあなたの質問を理解していない、あなたはあなたの質問でそれを計算する方法のスニペットを示して、同様に非常にいくつかの同様のコードスニペットがあります。基本的には、エポックからの時間を戻します。 – s952163

関連する問題