我有一个看起来像" 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。有没有办法转换考虑到时间是基于工作时间?
答案 0 :(得分:3)
不,DateTime使用24小时制,所以解析" 5:00"将始终返回相当于凌晨5点。
"工作时间"即使在一种文化中也许不是一成不变的(也许我晚上工作!)所以任何类似这样的逻辑都需要由你编写,而不是在框架中提供。
这个逻辑很容易看起来像:
if (time.Hour < 9) // less than 9AM, it must be PM!
time.AddHours(12);