GroupWise 2014 日期格式为日期时间
本文关键字:日期 时间 格式 GroupWise 2014 | 更新日期: 2023-09-27 18:35:38
我正在使用 GroupWise 2014 Rest API,解析它们的日期格式时遇到问题。
当你获取一个用户时,你会收到一个带有"timeCreated"的json对象:1419951016000
,
但是我不知道那个日期是什么格式。
我试过了
DateTime.Parse
DateTime.FromFileTime
DateTime.FromFileTimeUtc
1419951016000
的值应该在时间2014-12-30 15:50
1970 年 1 月 1 日 UTC 以来的 unix 时间(以毫秒为单位)。 当前 unix 时间(以秒为单位)在此处显示为 1419964283。
要将DateTime
转换为 unix 时间,请参阅此处:如何将 UNIX 时间戳转换为日期时间,反之亦然?。 该代码适用于以秒为单位的 unix 时间;以下内容适用于以毫秒为单位的 UNIX 时间,表示为long
:
public static class UnixTimeHelper
{
const long MillisecondsToTicks = 10000;
static readonly DateTime utcEpochStart = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
static DateTime UtcEpochStart { get { return utcEpochStart; }}
public static DateTime ToDateTime(long unixTimeInMs, DateTimeKind kind)
{
var dateTime = UtcEpochStart + new TimeSpan(MillisecondsToTicks * unixTimeInMs);
if (kind == DateTimeKind.Local)
dateTime = dateTime.ToLocalTime();
return dateTime;
}
public static long ToUnixTimeInMs(DateTime dateTime)
{
if (dateTime.Kind == DateTimeKind.Local)
dateTime = dateTime.ToUniversalTime();
var span = dateTime - UtcEpochStart;
return (long)(span.Ticks / MillisecondsToTicks);
}
}
使用此代码。 UnixTimeHelper.ToDateTime(1419951016000, DateTimeKind.Utc).ToString()
给出值"12/30/2014 2:50:16 PM"。 您希望的值是 UTC 还是当地时间的"2014-12-30 15:50"?
如果使用 Json.NET 序列化 JSON,则可以编写自定义JsonConverter
以使用此处的说明从 DateTime
属性自动执行转换:编写自定义 Json.NET 日期时间转换器 。 该代码也适用于以秒为单位的 unix 时间,因此需要进行调整。
(最后,支持Plutonix的建议,仔细检查文档。 特别是,您需要阅读文档中有关返回时间的时区的内容。 它可能是UTC,但确保是值得的。
更新
快速搜索后,在线文档看起来很糟糕,但此页面提到了
过期时间
长
自选。使用明确的过期截止时间。该时间被指定为 java long 时间。
java.util.Date
表示"自称为"纪元"的标准基准时间(即 1970 年 1 月 1 日 00:00:00 GMT)以来指定的毫秒数"作为long
。