【发布时间】:2018-01-23 07:17:27
【问题描述】:
我需要能够以不同格式获取当前日期作为字符串。
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?
【问题讨论】:
-
您可以更改当前线程或整个应用程序的文化。见:stackoverflow.com/questions/468791/…
-
@ThomasVoß 为什么?您可以简单地将其作为参数提供给 DateTime.ToString(...) 而无需更改线程/应用程序的 all 方面。如果您想拥有一个全球应用程序,那么您的应用程序更适合,它完全设置为一种 TZ/文化或另一种,而不是针对不同文化的输出
-
我不确定从时区到首选日期格式是否存在可靠的现实世界映射。 This article 讨论如何进行文化特定的格式化,但可能无法从 TZ 推断文化。