根据提供的cultureinfo将通用日期时间转换为日期时间

时间:2017-06-13 08:12:18

标签: c# datetime cultureinfo currentculture

我从我的javascript客户端生成一个日期时间值到UTC格式我需要能够将此日期时间值转换为特定文化的日期和时间。

我这样做是为了获取日期时间

new Date().toUTCString(); // "Tue, 13 Jun 2017 07:44:58 GMT"

在我的C#控制台应用程序中

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");
var dt = DateTime.Parse("Tue, 13 Jun 2017 07:44:58 GMT", Thread.CurrentThread.CurrentCulture);
Console.WriteLine(dt);

我总是在我的区域的时间内显示日期时间,而不是我传递给它的cultureinfo值。

当我解析具有特定文化的普遍时间时,我需要的是向我展示特定cultureinfo的日期和时间(上述代码中的丹麦语)。我该怎么做?

3 个答案:

答案 0 :(得分:1)

尝试

// See - https://stackoverflow.com/a/7908482/1603275 for a fuller list of options
TimeZoneInfo sourceTimeZone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");

// Not sure if DateTime.UtcNow will default to DateTimeKind.Utc
DateTime utcDate = DateTime.UtcNow;
utcDate = DateTime.SpecifyKind(utcDate, DateTimeKind.Utc);

DateTime localDate = TimeZoneInfo.ConvertTimeFromUtc(utcDate, sourceTimeZone);
Console.WriteLine(localDate);

答案 1 :(得分:0)

这可能会有所帮助

        System.Globalization.CultureInfo customCulture = new System.Globalization.CultureInfo("da-DK", true);
         //to change the date time patern
        //customCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd h:mm tt";

        System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
        System.Threading.Thread.CurrentThread.CurrentUICulture = customCulture;

        DateTime newDate = System.Convert.ToDateTime("Tue, 13 Jun 2017 07:44:58 GMT");

答案 2 :(得分:-1)