跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C#

C# 日期字符串解析与时间验证实战

C# 环境下处理日期字符串转换与时间格式校验的实用方案,涵盖 TryParseExact 用法及自定义时间验证逻辑。重点解决不同日期格式(如 20120804 或 2012-08-04)的标准化输出,并提供小时分钟范围的合法性检查方法,确保数据录入的准确性与健壮性。

灰度发布发布于 2012/5/21更新于 2026/6/916 浏览
C# 日期字符串解析与时间验证实战

C# 日期字符串解析与时间验证实战

在实际开发中,处理用户输入的日期和时间字符串是常见需求。直接转换往往容易因格式不匹配或区域设置不同导致异常,因此我们需要更稳健的解析方案。

标准日期格式解析

针对常见的日期格式,推荐使用 DateTime.TryParseExact 方法。相比 Parse,它不会抛出异常而是返回布尔值,配合 out 参数能安全地获取结果。同时指定 CultureInfo.InvariantCulture 可以避免因系统区域设置(如中文/英文环境)导致的解析差异。

纯数字格式 (yyyyMMdd)

string str = "20120804";
DateTime dt;
if (DateTime.TryParseExact(str, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out dt))
{
    return dt.ToString("yyyy-MM-dd");
}

带分隔符格式 (yyyy-MM-dd)

string str = "2012-08-04";
DateTime dt;
if (DateTime.TryParseExact(str, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out dt))
{
    return dt.ToString("yyyy-MM-dd");
}

上述两种情况最终都会统一输出为 yyyy-MM-dd 的标准形式,便于后续存储和展示。

自定义时间字符串校验

有时候我们只关心时间部分(例如 HH:mm),或者需要更严格的范围控制。下面是一个简单的校验逻辑,用于验证字符串是否符合 HH:mm 格式且数值在合法范围内。

public bool IsTime(string strTime)
{
    if (strTime == null) { strTime = ""; }
    
    string[] _time = strTime.Split(':');
    if (_time.Length != 2) { return false; }

     ( i = ; i <= ; i++)
    {
        
        {
            .Parse(_time[i]);
        }
        
        {
             ;
        }
    }

     hour = .Parse(_time[]);
     minute = .Parse(_time[]);

     (hour <  || hour >  || minute <  || minute > )
    {
         ;
    }

     ;
}
for
int
0
1
try
int
catch
return
false
int
int
0
int
int
1
if
0
23
0
59
return
false
return
true

这里主要做了三点检查:首先确保分割后正好有两段;其次尝试将两段都转为整数,失败则说明包含非数字字符;最后判断小时是否在 0-23 之间,分钟是否在 0-59 之间。这样能有效过滤掉类似 "25:00" 或 "12:60" 的非法输入。

小结

处理日期时间数据时,尽量使用 TryParseExact 明确指定格式,避免隐式转换带来的风险。对于特殊的时间校验需求,结合基础字符串操作也能快速实现轻量级的验证逻辑。

目录

  1. C# 日期字符串解析与时间验证实战
  2. 标准日期格式解析
  3. 纯数字格式 (yyyyMMdd)
  4. 带分隔符格式 (yyyy-MM-dd)
  5. 自定义时间字符串校验
  6. 小结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 智能梯控系统设计方案:跨品牌群控与 AI 调度架构解析
  • 基于 AiOnly 与 N8N 的每日 AI 资讯早报自动化搭建实战
  • OpenClaw 运行原理剖析:个人 AI 操作系统引擎解析
  • Axios 错误处理的设计与进阶封装,实现网络层面的数据与状态解耦
  • AI 大型语言模型在商业智能(BI)领域的实际应用
  • 解决 Spring Boot 项目中 JUnit NoSuchMethodError 报错
  • Vue Print Designer 前端可视化打印设计器介绍
  • SALMONN:支持语音音频与音乐的开源大语言模型
  • Python 爬虫基础教程:请求、解析与数据存储
  • BFS 解决边权相同的最短路问题
  • 现代化Python GUI开发指南:3步打造桌面应用
  • STM32 运行 AI 大模型的四种主流方案对比与实战案例
  • 一文读懂 Agent:大模型自主智能体的演进与落地
  • jQuery 从入门到实战:前端高效开发指南
  • Python 2026 发展局势:AI 时代的通用基础设施语言
  • OpenHarmony 开发:使用 cached_query 实现高性能声明式数据缓存
  • 大模型参数高效微调(PEFT)技术综述:从原理到应用
  • 大模型方向产品经理面试经验与答案解析
  • Rust 获取系统资源监控及自动壁纸设置
  • Web 自动化测试入门:从概念到百度搜索实战

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online