将字符串中的AM / PM确定为“05:00:00”

时间:2014-05-07 16:52:10

标签: c# datetime

我有一个看起来像" 05:00:00"的字符串。我使用以下内容将其转换为C#中的日期时间。

var time = DateTime.ParseExact(row.l_file_time, "HH:mm:ss", System.Globalization.CultureInfo.GetCultureInfo("en-US" )); var x = time.ToString("tt");

c#认为05:00是早上,应该是PM。有没有办法转换考虑到时间是基于工作时间?

1 个答案:

答案 0 :(得分:3)

不,DateTime使用24小时制,所以解析" 5:00"将始终返回相当于凌晨5点。

"工作时间"即使在一种文化中也许不是一成不变的(也许我晚上工作!)所以任何类似这样的逻辑都需要由你编写,而不是在框架中提供。

这个逻辑很容易看起来像:

if (time.Hour < 9) // less than 9AM, it must be PM!
  time.AddHours(12);