使用年月日和时间在c#中转换DateTime

时间:2018-03-27 07:44:40

标签: c# datetime datetime-format

我有以下xml文件:

<Test>
    <Header>
       <Title>Test</Title>
       <Time>Wed Mar 21 14:37:04 2018</Time>
...

我可以解析它并抽出时间:

public DateTime Time
{
    get { return _time; }
    private set { _time = value; }
}

foreach (XElement el in header.Elements()) {
    if (String.Compare(el.Name.ToString(), "Time", true) == 0) {
        string format = el.Value;
        _time = DateTime.ParseExact(format, "ddd MMM d H:m:s yyyy", CultureInfo.InvariantCulture);
        Console.WriteLine(_time);
    }
}

通过上述解决方案,我可以得到时间,但采用以下格式:

3/21/2018 2:56:40 PM

我怎样才能以这种格式获得它?

2018-03-21 14:56:40

提前致谢!

2 个答案:

答案 0 :(得分:2)

指定格式对DateTime对象没有意义。他们的财产中有几个月,几天,几年,几分钟等。 See the documentation

要求这些按特定顺序排除是没有意义的,除非您想将其转换为字符串:

time.ToString("yyyy-MM-dd HH:mm:ss");

如果要访问日期时间的某些部分,可以直接使用其属性:

time.Year;
time.Month;

答案 1 :(得分:0)

使用DateTime.ToString(string format)来执行此操作。

foreach (XElement el in header.Elements()) {
    if (String.Compare(el.Name.ToString(), "Time", true) == 0) {
        string format = el.Value;
        _time = DateTime.ParseExact(format, "ddd MMM d H:m:s yyyy", CultureInfo.InvariantCulture);
        Console.WriteLine(_time.ToString("yyyy-MM-dd HH:mm:ss"));
    }
}