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

问题描述 投票:-2回答:2

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

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

提前致谢。

c# datetime date-conversion
2个回答
1
投票

Following MSDN (DateTime Structure)

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

所以DateTime只是一些滴答。

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


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
© www.soinside.com 2019 - 2024. All rights reserved.