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

.NET Core中如何将{YYYY-MM-DD_hh-mm-ss}格式字符串转为DateTime类型

.NET Core中转换{YYYY-MM-DD_hh-mm-ss}格式字符串为DateTime类型的方法

完全不需要用正则表达式,.NET Core提供了专门的日期解析方法,比正则更简单可靠。

核心方法:ParseExact 或 TryParseExact

这两个方法可以指定精确的格式字符串来解析日期,推荐用TryParseExact,它不会在格式不匹配时抛出异常,更安全。

代码示例(12小时制时间)

假设你的输入字符串是类似2024-05-20_03-45-30的格式:

using System.Globalization;

string inputDate = "2024-05-20_03-45-30";
// 格式字符串要和输入严格对应:yyyy(年)、MM(月)、dd(日)、hh(12小时制)、mm(分)、ss(秒)
string format = "yyyy-MM-dd_hh-mm-ss";

// 方法1:ParseExact - 格式不匹配会抛出异常
DateTime result1 = DateTime.ParseExact(inputDate, format, CultureInfo.InvariantCulture);

// 方法2:TryParseExact - 推荐,格式不匹配时返回false,不会报错
if (DateTime.TryParseExact(inputDate, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime result2))
{
    // 转换成功,使用result2
}
else
{
    // 转换失败,处理错误逻辑
}

如果是24小时制时间

如果你的时间部分是24小时制(比如15-45-30),只需要把格式字符串里的hh改成HH即可:

string format = "yyyy-MM-dd_HH-mm-ss";

关键注意事项

  • 格式字符串必须和输入字符串的结构完全一致,包括下划线、横杠这些分隔符
  • 必须指定CultureInfo.InvariantCulture,避免系统区域设置的日期格式影响解析结果
  • yyyy是小写的(表示公历年份),不要写成大写的YYYY(大写代表周年,通常和跨年周相关,不是常规日期的年)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:37:10