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

how to convert DateTime into Unix TimeStamp in F#?

是否有函数/库/简单的代码片段可以做到这一点?

例如,我找到了 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()

你应该小心,因为 timestamp 可能不是 int。但是在 .NET 4.6.x 中,您应该能够使用注释中提到的函数。

这是一个例子:

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 上运行,因此可以使用它或在必要时将 back/forth 转换为 DateTime

顺便说一下,我发现在 .fsx 文件中,这些方法的智能感知有点不稳定(但有效)。在 .fs 文件中没关系。