我确定以前在某处解释过,但我似乎无法获得我想要的确切格式。 我需要将C#中的DateTime对象转换为xsd:dateTime对象。
结果应如下所示:
2014-11-19T21:59:59+02:0
答案 0 :(得分:3)
人们通常会使用The "O"
or "o"
standard format。无论您使用哪种文化,此格式始终生成"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK"
格式。
但这与您的需求不符。您需要使用custom date and time format。
DateTime dt = new DateTime(2014, 11, 19, 21, 59, 59, DateTimeKind.Local);
dt.ToString("yyyy-MM-ddTHH:mm:ssK");
结果将是;
2014-11-19T21:59:59+02:00
然后,您可以使用String.Substring
overload删除您的上一个字符,如;
.Substring(0, dt.ToString("yyyy-MM-ddTHH:mm:ssK").Length - 1)
请注意,如果DateTimeKind
为Local
,则此"K"
custom format specifier仅生成当前时区的UTC Offset部分。对于Utc
,它会生成Z
个字符,对于Unspecified
,它会生成空字符串。