如何在 C# 中使用 'T' 将日期转换为/从字符串



我使用以下函数将DateTime从/转换为string:

DATE_OBJ.ToString(DATE_FORMAT);
DateTime.ParseExact(Date_string, DATE_FORMAT, null);

现在我必须使用以下格式2012-03-20T14:18:25.000+04:00

我应该使用哪种格式将其正确转换为string并从DateTime对象生成string ?

可以使用

将DateTime设置为该格式
DateTime dt = new DateTime();
dt.ToString("o");

和从该格式到DateTime的

DateTimeOffset.Parse(dateString);

以下是关于日期时间格式的更多信息:http://www.dotnetperls.com/datetime-format

你最好使用DateTimeOffSet:

string str = " 2012-03-20T14:18:25.000+04:00";
DateTimeOffset dto = DateTimeOffset.Parse(str);
//Get the date object from the string. 
DateTime dtObject = dto.DateTime; 
//Convert the DateTimeOffSet to string. 
string newVal = dto.ToString("o");

您不能在DateTime中这样做,因为DateTime没有TimeZone的信息。

这很接近:string.Format("{0:s}", dt)将给出2012-03-20T14:18:25。参见:http://www.csharp-examples.net/string-format-datetime/

您可以将其扩展为:string.Format("{0:s}.{0:fff}", dt),这将使2012-03-20T14:18:25.000

但是你最好看看DateTimeOffset: DateTime vs DateTimeOffset

(不建议,但假装它仍然使用DateTime: string.Format("{0:s}.{0:fff}+04:00", dt))

如果这是你收到的字符串,那么你可以按T分割字符串,只使用第一部分,即整个字符串的日期组件,并解析它。

,

string dateTimeAsString = "2012-03-20T14:18:25.000+04:00";
string dateComponent = dateTimeAsString.Splic('T')[0];
DateTime date = DateTime.ParseExact(dateComponent, "yyyy-MM-dd",null);

相关内容

  • 没有找到相关文章

最新更新