如何将DateTime .NET数据类型转换为W3C XML DateTime数据类型字符串并返回?

sha*_*oth 18 .net c# string types

我有一个System.DateTime对象,我需要将其转换为一个字符串,以W3C XML DateTime格式存储该日期时间(yyyy-mm-ddThh:mm:ssZ),然后能够将生成的字符串转换回System.DateTime.

在.NET中是否有为此做好准备或者我必须自己实现它?

Che*_*eso 16

我认为W3C dateTime当时有更多有效数字.这是我使用的:

// DateTime to W3C dateTime string
string formatString= "yyyy-MM-ddTHH:mm:ss.fffffffzzz";
dateTimeField.ToString(formatString) ;

// W3C dateTime string to DateTime 
System.Globalization.CultureInfo cInfo= new System.Globalization.CultureInfo("en-US", true);
dateTimeField= System.DateTime.ParseExact(stringValue, formatString, cInfo);
Run Code Online (Sandbox Code Playgroud)


Ric*_*chB 13

如果你想要一个W3C XML格式的日期,那么使用.Net的W3C XML格式化API(自v1.0之前就已经存在):

var w3cStringFormat = XmlConvert.ToString(DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

结果是:

2014-09-12T16:03:22.6833035 + 01:00

然后再回来:

var dateTime = XmlConvert.ToDateTime(w3cStringFormat);
Run Code Online (Sandbox Code Playgroud)


Kar*_*arg 5

这将转换为您需要的字符串并将字符串解析回DateTime:

var now = DateTime.Now;
Console.WriteLine(now.ToUniversalTime().ToString());
var nowString = now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ");
Console.WriteLine(nowString);

var nowAgain = DateTime.ParseExact(nowString, "yyyy-MM-ddTHH:mm:ssZ", null);
Console.WriteLine(nowAgain.ToUniversalTime().ToString());

Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)