【发布时间】:2020-03-24 08:36:49
【问题描述】:
我尝试了一切来获取当前的年/月/日/小时,但它不起作用。我总是在 1 小时后获得数据。因此,如果在荷兰是 17:00,我会得到 16:00。我已经尝试了很多东西,但我无法解决这个问题..这是一个错误吗?
我试过这个:
string dateTimeNowPlusForecaseHour = DateTimeOffset.Now.ToLocalTime().AddHours(hour).ToString("yyyyMMddhh");
还有这个:
string dateTimeNowPlusForecaseHour = DateTimeOffset.UtcNow.ToLocalTime().AddHours(hour).ToString("yyyyMMddhh");
还有这个:
string dateTimeNowPlusForecaseHour = DateTimeOffset.UtcNow.ToLocalTime().AddHours(hour).ToString("yyyyMMddhh");
还有这个:
string dateTimeNowPlusForecaseHour = DateTimeOffset.Now.AddHours(hour).ToString("yyyyMMddhh");
还有这个:
public string GetForecastTime(int hour)
{
// Take amount of seconds elapsed since 1970
var amountOfSecondsElapsedSince1970 = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
// Make a Datetime variable (1970 is the start)
System.DateTime dateTimeNowString = new DateTime(1970, 1, 1, 1, 0, 0, 0, System.DateTimeKind.Utc);
// Add amountOfSecondsElapsedSince1970 to the date time starting at 1970, + the amount of hours (for each forecast so 0, 1, and 2)
dateTimeNowString = dateTimeNowString.AddSeconds(amountOfSecondsElapsedSince1970).AddHours(hour).ToLocalTime();
// This is the dateTime
string dateRealWeatherForecastTimee = dateTimeNowString.ToString("yyyyMMddhh");
return dateRealWeatherForecastTimee;
}
似乎没有任何效果。
更新
我在一个新的 asp.net 核心控制台项目(而不是我正在处理的项目)上尝试了以下行:
string dateTimeNowPlusForecaseHour = DateTime.Now.AddHours(hour).ToString("yyyyMMddhh");
这行得通!但为什么它不适用于我正在从事的项目呢?
更新2.0: 当我查看项目的时区时,我得到了错误的 GMT。当我创建一个新的 asp.net 核心控制台项目并查看时区时,我得到 w。欧洲,这给了我正确的时间......为什么时区错误?那不应该自动正确吗?
【问题讨论】:
标签: datetime .net-core utc datetimeoffset