【问题标题】:Parse a string containing date and time in a custom format以自定义格式解析包含日期和时间的字符串
【发布时间】:2010-04-01 13:10:52
【问题描述】:

我有一个格式为"ORDER20100322194007" 的字符串,其中20100322 是日期,194007 是时间。如何解析字符串并获取包含的DateTime对象?

【问题讨论】:

  • 这是个好问题。也许您应该将标题更改为“.NET 中自定义日期格式的 DateTime 解析”

标签: c# parsing datetime time


【解决方案1】:

总是以ORDER开头吗?

string pattern = "'ORDER'yyyyMMddHHmmss";
DateTime dt;
if (DateTime.TryParseExact(text, pattern, CultureInfo.InvariantCulture, 
                           DateTimeStyles.None,
                           out dt))
{
    // dt is the parsed value
} 
else 
{
    // Invalid string
}

如果字符串无效应该抛出异常,则使用DateTime.ParseExact 而不是DateTime.TryParseExact

如果它不总是以“ORDER”开头,那么做任何你需要的事情来获取日期和时间部分,并从上面的格式模式中删除“'ORDER'”。

【讨论】:

    【解决方案2】:

    您可以使用DateTime.ParseExact 方法指定解析时应使用的格式。

    【讨论】:

      【解决方案3】:

      如果您没有固定的字符串结构,说订单不会总是存在,那么您可以使用正则表达式来分隔数字和字符,然后使用转换为日期时间函数来分隔数字。

      【讨论】:

        猜你喜欢
        • 2015-03-16
        • 1970-01-01
        • 1970-01-01
        • 2012-05-23
        • 2016-06-12
        • 2020-08-27
        • 2019-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多