You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Google Directory API返回的时间戳转为C# DateTime?

正确转换Google Directory API返回的ChromeOS设备自动更新到期时间戳(C#)

问题根源

Google Directory API返回的autoupdateexpiration字段是毫秒级Unix时间戳(以1970-01-01 00:00:00 UTC为起点的毫秒数),而C#中new DateTime(long)构造方法是将参数视为Ticks(1 Tick = 100纳秒),两者单位完全不同,直接转换会得到无效日期。

解决方案

以下是两种可靠的转换方式:

方式1:使用.NET Core 2.1+/NET 5+原生API

long autoUpdateExpiration = 1843455600000;
// 从UTC基准时间添加毫秒数,按需转为本地时间
DateTime expirationDate = DateTime.UnixEpoch.AddMilliseconds(autoUpdateExpiration).ToLocalTime();

方式2:兼容.NET Framework的通用写法

long autoUpdateExpiration = 1843455600000;
// 以1970-01-01 UTC为起点,添加对应毫秒数
DateTime expirationDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
                          .AddMilliseconds(autoUpdateExpiration)
                          .ToLocalTime(); // 若不需要本地时间,可移除ToLocalTime()

验证示例

输入时间戳1843455600000,转换后对应UTC时间为2028-06-01 03:00:00,转为本地时间会根据系统时区自动调整,与谷歌管理控制台显示的2028年6月到期时间一致。

注意事项

  • 确保用long类型接收时间戳,避免int类型溢出(API返回的是int64值)
  • 时区处理:若需与谷歌控制台显示时间完全匹配,需确认控制台使用的时区(通常为本地时区,因此转换时调用ToLocalTime()即可)

内容的提问来源于stack exchange,提问作者user568551

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:15:37