我有以下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
提前致谢!
答案 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"));
}
}