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

C#解析Elastic(Kibana)导出的特殊格式日期抛出异常问题

解析Kibana导出的特定日期格式为DateTime类型

默认的DateTime.Parse无法识别这种带@符号的自定义日期格式,你需要使用**DateTime.ParseExact或DateTime.TryParseExact**显式指定匹配的格式字符串,同时指定英文文化信息(因为月份是英文缩写)。

解决方案代码

首先确保引用System.Globalization命名空间,然后使用以下代码:

使用ParseExact(直接解析,适用于确定格式完全合规的场景)

using System.Globalization;

string kibanaDate = "Dec 6, 2022 @ 23:59:59.000";
DateTime parsedDate = DateTime.ParseExact(
    kibanaDate,
    "MMM d, yyyy @ HH:mm:ss.fff",
    CultureInfo.InvariantCulture
);

使用TryParseExact(更安全,避免抛出异常)

如果不确定所有日期字符串格式都正确,推荐用这个方法处理解析失败的情况:

using System.Globalization;

string kibanaDate = "Dec 6, 2022 @ 23:59:59.000";
if (DateTime.TryParseExact(
    kibanaDate,
    "MMM d, yyyy @ HH:mm:ss.fff",
    CultureInfo.InvariantCulture,
    DateTimeStyles.None,
    out DateTime parsedDate
))
{
    // 解析成功,在这里处理parsedDate
    Console.WriteLine(parsedDate.ToString());
}
else
{
    // 解析失败的处理逻辑
    Console.WriteLine("无法识别该日期格式");
}

格式字符串说明

"MMM d, yyyy @ HH:mm:ss.fff"各部分含义:

  • MMM:英文月份缩写(如Dec)
  • d:1-2位的日期(如6或12)
  • yyyy:四位年份
  • @:字面量匹配字符串中的@符号
  • HH:24小时制的小时数(00-23)
  • mm:分钟数(00-59)
  • ss:秒数(00-59)
  • fff:三位毫秒数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:51:12