如何在F#中将DateTime转换为Unix时间戳?

如何在F#中将DateTime转换为Unix时间戳?,datetime,f#,unix-timestamp,Datetime,F#,Unix Timestamp,是否有函数/库/简单代码段可以这样做 例如,我找到了Python的答案,但不是F#谢谢 我找到了另一条路 您应该小心,因为时间戳可能不是int。但是,在.NET4.6.x中,您应该能够使用注释中提到的函数 下面是一个例子: open System let unix = DateTimeOffset(DateTime.Now).ToUnixTimeSeconds() //val unix : int64 = 1488254491L let dt = DateTimeOffset.FromUn

是否有函数/库/简单代码段可以这样做

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

我找到了另一条路


您应该小心,因为
时间戳
可能不是
int
。但是,在.NET4.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
由于
ToUnixTimeSeconds
FromUnixTimeSeconds
DateTimeOffset
上运行,如果需要,可以使用它或将其前后转换为
DateTime


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

在.NET4.6.x中添加了从UnixTime转换到UnixTime的方法(在上面的链接中)。因此,请针对最新的版本。如果我需要使用早期版本(#NET 4.5)该怎么办?@Fagui窗帘我不明白你的问题,你给自己看了一段关于如何计算它的代码片段,在你的问题中,还有很多类似的代码片段。基本上,你把从新纪元开始的时间加回去。
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