【发布时间】:2017-10-06 20:14:29
【问题描述】:
我正在使用自定义函数来获取当前日期并减去天数,然后返回 unix 格式的时间戳。除了预期的输出不正确外,所有转换都工作正常。我想通过设置
DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 0, 0, 0)
致0,0,0,它会在当天午夜给我,但给我的是凌晨 5 点(格林威治标准时间)。
我的自定义函数:
public static int getUnixTimestamp(int days) {
// Date to convert
DateTime dateTime = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 0, 0, 0).AddDays(-days);
return (int)(TimeZoneInfo.ConvertTimeToUtc(dateTime) -
new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc)).TotalSeconds;
}
任何关于可能导致此问题的想法或反馈都会很棒,谢谢!
【问题讨论】:
-
自纪元以来的 Unix 时间戳不是 秒,而不是天吗?
-
@silkfire 没关系,我不认为,我正在将 DateTime 转换为 unix 时间戳。
-
对不起,错过了那部分。您是否尝试过 .NET v4.6 中可用的
DateTimeOffset.ToUnixTimeSeconds方法? -
@silkfire 遗憾的是,我的项目在 .net 2 上,我没有更新到 4+ 的选项。不过,那真是太好了。
-
什么样的公司使用这么老的框架;)