如何在 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
由于 ToUnixTimeSeconds
和 FromUnixTimeSeconds
在 DateTimeOffset
上运行,因此可以使用它或在必要时将 back/forth 转换为 DateTime
。
顺便说一下,我发现在 .fsx 文件中,这些方法的智能感知有点不稳定(但有效)。在 .fs 文件中没关系。
是否有函数/库/简单的代码片段可以做到这一点?
例如,我找到了 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
由于 ToUnixTimeSeconds
和 FromUnixTimeSeconds
在 DateTimeOffset
上运行,因此可以使用它或在必要时将 back/forth 转换为 DateTime
。
顺便说一下,我发现在 .fsx 文件中,这些方法的智能感知有点不稳定(但有效)。在 .fs 文件中没关系。