看起来像自 1970 年 1 月 1 日 UTC 以来以毫秒为单位的unix 时间。当前以秒为单位的unix 时间在此处显示为 1419964283。
要将 a 转换为DateTime
unix 时间,请参见此处:如何将 UNIX 时间戳转换为 DateTime,反之亦然?. 该代码适用于 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”。您想要的“2014-12-30 15:50”值是 UTC 还是您的本地时间?
如果您使用 Json.NET 序列化您的 JSON,您可以使用此处的说明编写自定义JsonConverter
以从DateTime
属性自动进行转换:编写自定义 Json.NET DateTime 转换器。该代码也适用于以秒为单位的 unix 时间,因此需要进行调整。
(最后,附议 Plutonix 的建议以仔细检查文档。特别是您需要阅读文档中有关返回时间的时区的内容。它可能是 UTC,但需要确保。)
更新
快速搜索后,在线文档看起来很糟糕,但是这个页面提到了
expiretime
long
可选。使用明确的到期截止时间。时间被指定为java long time。
java.util.Date
表示“自称为“纪元”的标准基准时间,即 1970 年 1 月 1 日 00:00:00 GMT 以来的指定毫秒数”为long
.