使用C#输出XML文件的日期和时间

时间:2014-06-04 13:35:32

标签: c# xml datetime

我正在用c#编写一个程序,将对象序列化为XML

我在使用日期和时间字段时遇到问题,他们不会在XML中生成以下输出:

2014-05-13T00:00:00
0000000T18:35:00

我在程序中声明了以下字段:

public DateTime startDate
public DateTime startTime

任何人都可以提供帮助,以便将日期正确输出到XML文件吗?

谢谢

3 个答案:

答案 0 :(得分:1)

您不必声明startTime来获取所需的输入。只需像这样解析你的日期时间:

DateTime startDate = new DateTime(2014, 5, 13, 18, 35, 0);
startDate.ToString("yyyy-MM-dd'T'HH:mm:ss.fffffff");//2014-05-13T18:35:00.000000  

您还可以查看关于格式化日期时间的answer

答案 1 :(得分:1)

DateTime代表日期和时间,所以实际上只有一个变量就足够了:

public DateTime startTimestamp;

然后,您可以从该单个日期时间值创建所需的字符串表示形式,如下所示:

string dateValue = startTimestamp.Date.ToString("yyyy-MM-ddTHH:mm:ss");

问题是“00000000”不是有效日期,因此您需要自己进行格式化:

string timeValue = "00000000T" + startTimestamp.ToString("HH:mm:ss");

问题实际上是您希望将(空)时间部分和(无效)日期部分存储在XML中的原因,您可以将日期和时间存储在一个值或日期和时间中,使用单独的值,如下所示:

string dateTimeValue = startTimestamp.ToString("yyyy-MM-ddTHH:mm:ss");
string dateOnly = startTimestamp.ToString("yyyy-MM-dd");
string timeOnly = startTimestamp.ToString("HH:mm:ss");

答案 2 :(得分:0)

如果字段startTime正在按时区存储时间,请注意xs:time数据类型的文字结构为


    hh:mm:ss[Z|(+|-)hh:mm]

    0000000T18:35:00似乎无效。