以这种格式显示当前时间:HH:mm:ss

Yus*_*tme 8 c# time cultureinfo

我在以这种格式显示时间时遇到了一些麻烦:HH:mm:ss.无论我尝试什么,我都不会以那种格式得到它.

我希望荷兰文化中的时间是"nl-NL".

这是我的一个(虽然我忘了保持计数)第1000次尝试:

CultureInfo ci = new CultureInfo("nl-NL");

string s = DateTime.Now.TimeOfDay.ToString("HH:mm:ss", ci);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Dar*_*rov 16

string s = DateTime.Now.ToString("HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

  • @Yustme:不要混淆`DateTime.Now.TimeOfDay`和`DateTime.Now` (2认同)

the*_*onk 8

您需要使用TimeZoneInfo类,以下是如何以东方标准时间区显示HH:mm:ss格式的当前时间:

var timeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
string s = TimeZoneInfo.ConvertTime(DateTime.Now, timeZone).ToString("HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

要查找所有可用的时区,您可以使用

TimeZoneInfo.GetSystemTimeZones();
Run Code Online (Sandbox Code Playgroud)

查看上面返回的值,您需要的时区的ID(阿姆斯特丹我假设)称为W.欧洲标准时间:

var timeZone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
string s = TimeZoneInfo.ConvertTime(DateTime.Now, timeZone).ToString("HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)