如何在F#中将DateTime转换为Unix TimeStamp?

时间:2017-02-28 01:50:02

标签: datetime f# unix-timestamp

是否有一个函数/库/简易片段呢?

我找到了Python的答案,但不是F#感谢

我在这里找到了相反的方向 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()

1 个答案:

答案 0 :(得分:3)

您应该小心,因为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

ToUnixTimeSecondsFromUnixTimeSecondsDateTimeOffset上运行时,要么使用它,要么在必要时来回转换为DateTime

顺便说一下,我发现在.fsx文件中,intellisense对于这些方法来说有点不稳定(但有效)。在.fs文件中没关系。