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

时间:2010-08-01 10:39:34

标签: 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);

我做错了什么?

3 个答案:

答案 0 :(得分:16)

string s = DateTime.Now.ToString("HH:mm:ss");

答案 1 :(得分:8)

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

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

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

TimeZoneInfo.GetSystemTimeZones();

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

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

答案 2 :(得分:1)

TimeOfDay是一个TimeSpan,它只有一个没有参数的ToString()。 使用Darin's solution或来自MSDN documentation的示例用于TimeSpan.ToString()