我有一个看起来像"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是早上,应该是下午。是否有一种方法来转换考虑的时间是基于工作时间?
不,DateTime使用24小时时间,因此解析"5:00"将始终返回相当于上午5点的值。
"工作时间"不是固定的,即使在一个文化中(也许我在晚上工作!),所以任何类型的逻辑都需要由您编写,而不是在框架中提供。
这个逻辑很容易看起来像:
if (time.Hour < 9) // less than 9AM, it must be PM!
time.AddHours(12);