我正在使用自定义函数来取当前日期并减去它的日子,然后以unix格式返回一个时间戳。除预期输出不正确之外,所有转换都正常工作。我想通过设置Unix时间戳函数没有返回预期的时间戳,错误的时区?
日期时间(DateTime.UtcNow.Year,DateTime.UtcNow.Month,DateTime.UtcNow.Day,0,0,0)
到0,0,0
,它将给我午夜的一天,但它给了我5am(GMT)。
我的自定义函数:
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时间戳_seconds_自时代以来,而不是几天? – silkfire
@silkfire这应该不重要我不会想,我将日期时间转换为unix时间戳。 –
对不起,错过了那部分。你有没有试过.NET v4.6中提供的'DateTimeOffset.ToUnixTimeSeconds'方法? – silkfire