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

C#中如何将无冒号24小时制整数转换为DateTime对象

解决方案:将无冒号时间整数转为今日DateTime对象

核心思路是把整数拆解为小时和分钟,再结合今日日期构造DateTime对象,以下是几种实现方式:

方法一:通过整数运算拆分时间,构造TimeSpan拼接

直接对时间整数做整数除法和取余,得到小时和分钟,再构造TimeSpan与DateTime.Today相加:

int timeInt = 830; // 替换为你的目标时间整数
int hours = timeInt / 100;
int minutes = timeInt % 100;

DateTime todayWithTime = DateTime.Today + new TimeSpan(hours, minutes, 0);

方法二:使用DateTime的时间增量方法

拆分出小时和分钟后,直接调用DateTime.Today的AddHours和AddMinutes方法:

int timeInt = 245;
int hours = timeInt / 100;
int minutes = timeInt % 100;

DateTime todayWithTime = DateTime.Today.AddHours(hours).AddMinutes(minutes);

方法三:格式化字符串后解析(适合需要字符串中间步骤的场景)

先将整数格式化为4位补零的字符串,再解析为TimeSpan后拼接日期:

using System.Globalization;

int timeInt = 2359;
string timeStr = timeInt.ToString("D4"); // 自动补前导零,比如245会变成"0245"
TimeSpan timeSpan = TimeSpan.ParseExact(timeStr, "HHmm", CultureInfo.InvariantCulture);
DateTime todayWithTime = DateTime.Today + timeSpan;

注意事项

如果输入的整数可能存在非法值(比如2400、1260这类不符合时间规则的数),建议添加校验逻辑:

int timeInt = 2400;
int hours = timeInt / 100;
int minutes = timeInt % 100;
if (hours is < 0 or > 23 || minutes is < 0 or > 59)
{
    throw new ArgumentException("输入的时间整数不合法");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:25:00