c# - 日期时间解析

标签 c# parsing datetime

我正在编写一个系统日志服务器,用于接收系统日志消息并将它们存储在数据库中。

我正在尝试将消息中收到的日期字符串解析为 DateTime 结构。

对于以下示例,为了清晰起见,我将使用下划线代替空格;实际收到的字符串有空格。

我收到的字符串格式为 "Jun__7_08:09:10" - 请注意月份和日期之间的两个空格。

如果日期在 10 号之后,则字符串变为 "Jun_10_08:09:10"(一个空格)。

如果我解析:

DateTime.ParseExact(Log.Date, "MMM  d HH:mm:ss", CultureInfo.InvariantCulture);

它适用于从 1 号到 9 号的字符串,但从 10 号开始抛出异常,如果我用一个空格解析,它会在 1 号到 9 号抛出异常(并且从 10 号开始起作用)。

解析这个字符串的正确方法是什么?

最佳答案

考虑使用这一行:

DateTime.ParseExact(Log.Date,
    "MMM d HH:mm:ss",
    CultureInfo.InvariantCulture,
    DateTimeStyles.AllowWhiteSpaces);

请注意,我删除了月份和日期之间的一个空格。那是因为 AllowWhiteSpaces 的字面意思是:

Specifies that s may contain leading, inner, and trailing white spaces not defined by format.

关于c# - 日期时间解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16984946/

相关文章:

c# - OpenCV - 创建颜色 mask

python - 如何使用 BeautifulSoup (python) 防止关闭错误 HTML 中的标签?

c# - 将刻度转换为日期时间

r - 可以 read_csv 解析 m/d/Y H :M:S AM/PM vector?

c# - azure : data storage with append

c# - 如何在 TextChanged 中获取新文本?

c# - Azure WebApp 未启动 : An error occurred while starting the application. 加载配置文件失败

java - Java 中的 SAX 解析器

parsing - 我的 Megaparsec 解析器卡住了,而且 ghci 调试也没有帮助

c# - asp.net中不同时区的日期随机变化