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

Unix时间戳转DateTime异常求助:传入1663869600得1970年日期

问题原因及解决方案

问题出在时间戳单位不匹配:你传入的1663869600是秒级Unix时间戳(对应2022-09-22),但你的代码全部用了毫秒级的转换方法,导致计算时把秒当成毫秒处理——数值缩小了1000倍,最终得到的是1970年初期的错误日期。

修正后的代码示例

方法一:改用秒级转换API

DateTime start = DateTimeOffset.FromUnixTimeSeconds(request.StartTime).DateTime;
var startUtc = DateTime.SpecifyKind(start, DateTimeKind.Utc);

方法二:改用AddSeconds方法

DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var startUtc = dtDateTime.AddSeconds(request.StartTime).ToLocalTime();

额外提示

Unix时间戳分两种类型:

  • 秒级:10位数字,范围对应1970-01-01到2038年左右
  • 毫秒级:13位数字,范围对应1970-01-01到2286年左右
    转换时一定要根据时间戳的位数和定义选择对应方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:55:22