将日期时间格式设置为具有时区的本地字符串



我需要能够以不同格式的字符串形式获取当前日期。

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使用另一种文化吗,如果是这样,我如何从TimeZoneInfoCultureInfo

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

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

Jon Skeet的令人敬畏的Noda Time包括国家代码->时区映射,因此您可以使用它来了解哪些国家/地区位于您给定的时区。但是从那里开始,您将不得不以某种方式选择目标国家/地区。

相关内容

  • 没有找到相关文章

最新更新