C#asp.net core 2.2-获取当前日期时间-不准确

我尝试了所有方法来获取当前的年/月/日/小时,但是它不起作用。我总是在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,System.DateTimeKind.Utc);

        // Add amountOfSecondsElapsedSince1970 to the date time starting at 1970,+ the amount of hours (for each forecast so 0,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");

那行得通!但是为什么它不适用于我正在从事的项目?

Update2.0: 当我查看项目的时区时,会出现GMT错误。当我创建一个新的asp.net核心控制台项目并查看时区时,我得到了w。欧洲,这给了我正确的时间...为什么时区错误?那不应该自动正确吗?

lcz263097130 回答:C#asp.net core 2.2-获取当前日期时间-不准确

  

DateTime.Now返回当前时间和日期。它返回的结构   可以存储为类中的字段或属性。我们调查这个   属性及其实现—访问操作系统的位置   当前时间。

string dateTimeNowPlusForecaseHour = DateTime.Now.ToString("yyyyMMddHH");
,

C# DateTime Format

此屏幕截图取自here。而且我几乎使用了所有这些,这意味着它们已经过测试并且肯定可以正常工作。如果小时数仍然不正确,请检查托管应用程序的服务器所在的时区。

本文链接:https://www.f2er.com/3012393.html

大家都在问