错误是 C# DateTime.Now 返回波斯日期

yag*_*asi 1 c# timezone datetime

C# 中的 DateTime.Now 必须返回 \'11/30/2019 11:10:12 AM\' 但它返回 \'09/09/1398 11:10:12 \xd9\x82.\xd8\xb8\'\nin Asp.Net web 应用程序我有这个问题,但在 C# 控制台应用程序中没有任何问题。

\n\n
DateTime dateTime = DateTime.Now;\n
Run Code Online (Sandbox Code Playgroud)\n\n

在此输入图像描述

\n

Jon*_*eet 5

就 、 和所返回的值而言,类型DateTime本身始终采用公历。YearMonthDay

您所观察到的是格式化的结果DateTime,它将其转换为默认线程区域性的默认日历系统。解决此问题的最简单方法是使用不变区域性:

using System;
using System.Globalization;

class Test
{
    static void Main()
    {
        var dateTime = DateTime.Now;
        string formatted = dateTime.ToString(
            "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
        Console.WriteLine(formatted); // 2019-11-30 09:19:43 or similar
    }
}
Run Code Online (Sandbox Code Playgroud)