将24小时日期时间转换为12小时格式而不使用字符串

时间:2018-03-05 12:08:33

标签: c# datetime date-conversion

我需要转换24小时格式的日期时间,并且必须将其显示为12小时格式。我得到了答案,将其转换为12小时格式的字符串并显示为字符串。

但我需要显示日期时间格式。所以我使用了Convert.ToDateTime(datetime),但它再次将datetime更改为24小时格式,还有更好的方式转换为12小时格式吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

Following MSDN (DateTime Structure)

  

在内部,所有DateTime值都表示为自0001年1月1日午夜12:00:00起经过的刻度数(100纳秒间隔的数量)。实际的DateTime值与中的方式无关。当在用户界面元素中显示或写入文件时,该值会出现。 DateTime值的出现是格式化操作的结果。格式化是将值转换为字符串表示形式的过程。

所以DateTime只是一些滴答。

如果您想显示日期,那么您实际上希望将此数字格式化为人类可读的格式。

答案 1 :(得分:0)

以下是一个例子:

Action<string> display = Console.WriteLine;
DateTime now  = DateTime.Now;
display($"24 hour format: {now:F}"); // 13:31:20
display($"12 hour format: {now:hh:mm:ss}"); // 01:31:20
display($"24 hour format: {now:HH:mm:ss}"); // 13:31:20