我需要能够以不同的格式将当前日期作为字符串。
TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var utcNow = DateTime.UtcNow;
var localTime = TimeZoneInfo.ConvertTimeFromUtc(utcNow, timeZone);
Console.WriteLine(localTime.ToShortDateString());
上面的示例将日期打印为22-01-2018
,这是丹麦语格式。但我需要它将日期打印为1/22/2018
(仅限示例)。
我知道我可以使用ToString
格式化日期,但我需要能够从一系列不同时区(用户选择时区)格式化日期。
我能以某种方式告诉ToShortDateString
使用其他文化,如果是,我该如何从TimeZoneInfo
转到CultureInfo
?
答案 0 :(得分:3)
不幸的是,您无法直接将TimeZoneInfo
转换为CultureInfo
。
问题是,在任何给定的时区,有许多国家都属于它,因此许多不同的文化背景。
Jon Skeet的精彩Noda Time包含国家/地区代码 - >时区映射,以便您可以使用它来了解您所在时区的哪些国家/地区。但是从那里开始,你必须以某种方式选择目标国家。