You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#转换Excel中[hh]:mm格式时长(227:20)显示异常求助

问题解决:Excel超长时长[hh]:mm转C#后显示异常

问题原因

Excel中[hh]:mm格式的时长(如227:20),实际存储的是以天为单位的小数数值(227小时20分钟 = 227/24 + 20/(24*60) ≈9.472222天)。你用DateTime.FromOADate()转换时,会把这个数值解析为「基准日期+9.472222天」,提取时间部分时只会取当天剩余的11小时20分钟,所以显示为11:20。

解决方案

改用TimeSpan处理,它专门用于表示时间间隔,支持超过24小时的时长:

// 读取Excel单元格的时长数值(以天为单位)
double durationDays = (double)ws.Cells[rowNum, 17].Value;
// 转换为TimeSpan对象
TimeSpan totalDuration = TimeSpan.FromDays(durationDays);
// 格式化为「总小时:分钟」的形式,确保分钟为两位
model.ezafekari = $"{(int)totalDuration.TotalHours}:{totalDuration.Minutes:D2}";

这样就能正确输出227:20到GridView中。

内容的提问来源于stack exchange,提问作者Mahdi Moein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 00:36:28