使用时区将DateTime格式化为本地字符串

时间:2018-01-23 07:17:27

标签: c# .net datetime timezone

我需要能够以不同的格式将当前日期作为字符串。

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

1 个答案:

答案 0 :(得分:3)

不幸的是,您无法直接将TimeZoneInfo转换为CultureInfo

问题是,在任何给定的时区,有许多国家都属于它,因此许多不同的文化背景

Jon Skeet的精彩Noda Time包含国家/地区代码 - >时区映射,以便您可以使用它来了解您所在时区的哪些国家/地区。但是从那里开始,你必须以某种方式选择目标国家。