我有一个数据表,具体来说是来自 Sage 100 ERP,它使用两个单独的列来存储更新的日期和时间(DateUpdated 和 TimeUpdated)。我需要将这两个字段中的数据转换为 DateTime 对象以进行比较。日期看起来像“mm/dd/yyyy 12:00 AM”,时间是小数,例如 14.29297。到目前为止,我已经能够将时间转换为分钟,如下所示:
private DateTime GetDateTime(string date, decimal time)
{
int hour = int.Parse(Math.Floor(time).ToString());
decimal minTemp = decimal.Parse((60 * (time - hour)).ToString());
int min = int.Parse(Math.Round(minTemp).ToString());
int sec = int.Parse(Math.Round(60 * (minTemp - min)).ToString());
string datetime = date + " " + hour.ToString() + ":" + min.ToString();
return DateTime.Parse(datetime);
}
在将日期字符串传递给此方法之前,我从日期字符串中删除了 12:00AM。这可行,但我失去了非常重要的秒数。
如何将时间转换为小时、分钟和秒?
最佳答案
看起来您可以避免所有额外的处理,只需执行以下操作:
DateTime GetDateTime(string date, decimal time)
{
return DateTime.Parse(datetime).AddHours((double)time);
}
关于c# - 当时间为小数时,如何转换为 DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20709819/