【问题标题】:Parsing String into a C# DateTime Object将字符串解析为 C# DateTime 对象
【发布时间】:2013-04-04 22:25:40
【问题描述】:

在我正在解析的 XML 中,我有以下内容:

<event>
    <book>Felicity Fly</book>
    <author>Christina Gabbitas</author>
    <bookImgUrl>http://www.whsmith.co.uk/Images/Products\957\255\9780957255203_t_f.jpg</bookImgUrl>
    <info>Christina Gabbitas will be signing copies of her new book, Felicity Fly. Books should be bought from WHSmith. Proof of purchase may be necessary</info>
    <date>20 Apr 2013</date>
    <startTime>10:30</startTime>
    <location>
        <name>WHSmith Chester</name>
        <address>5-7 Foregate Street</address>
        <city>Chester</city>
        <county>Cheshire</county>
        <postcode>CH1 1HH</postcode>
        <tel>01244 321106</tel>
    </location>
</event>

我想从 date> 和 &lt;startTime&gt; 两个节点创建一个 DateTime 对象。所以我这样做:

var EventEntity = new Event()
{
    Book = e.Book,
    BookImgUrl = e.BookImgUrl,
    Info = e.Info,
    Start = new DateTime().**?**
};

但是当我在 DateTime 对象后按点 [.] 时,我没有从 Intellisense 获取 Parse 方法,这是为什么呢?我做错了什么?

我正计划使用this post 中概述的解决方案。

【问题讨论】:

    标签: string parsing c#-4.0 datetime


    【解决方案1】:

    Parse 是一种静态方法,但您将其作为实例方法来调用。 你应该这样称呼它:

    var EventEntity = new Event()
    {
        Book = e.Book,
        BookImgUrl = e.BookImgUrl,
        Info = e.Info,
        Start = DateTime.ParseExact(...) // or DateTime.TryParseExact(...)
    };
    

    【讨论】:

    • 谢谢丹尼尔。如果我在日期和开始时间之间添加一个空格,这种格式是否正确"dd MMM YYYY HH:mm"
    • 我的意思是如果我将datestartTime 连接起来,它们之间有一个空格。
    • 我没有尝试过这种格式,但对我来说听起来不错。您必须注意文化,否则您的月份将无法正确解析(InvariantCulture 并不意味着适用于所有事情;有一些关于它的帖子......)
    猜你喜欢
    • 2014-01-17
    • 2011-11-26
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2013-11-21
    相关资源
    最近更新 更多