如何将日期字符串从格式X转换为格式Y?

我有一个包含某种格式X日期的字符串(例如2015年12/31/2015 )。 如何将其转换为Y格式(例如2015-12-31 00:00:00 )?

C#拥有自己的DateTime结构 。 目标是

  1. 将您的字符串转换为DateTime然后
  2. DateTime转换回字符串。

首先,您需要获取格式X和Y的格式字符串 。请检查以下两个列表:

  • 标准日期和时间格式字符串
  • 自定义日期和时间格式字符串

例如,对于12/31/2015日,所有dMM/dd/yyyy (带有en-US或不变文化)或MM\/dd\/yyyy (带有任何语言环境)都可以。 对于2015-12-31 00:00:00 ,它将是yyyy-MM-dd HH:mm:ss


对于第一步,您可以使用DateTime.ParseExact (或DateTime.TryParseExact ,如果您希望在字符串格式不正确时优雅地失败),例如,

 var myDateTime = DateTime.ParseExact(myInputString, "MM/dd/yyyy", CultureInfo.InvariantCulture); 

对于第二步,使用DateTime.ToString :

 var myOutputString = myDateTime.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); 

基于Heinzi推荐方法的简单function:

 public string ConvertDateFormat(string input, string inputFormat, string outputFormat) { return DateTime.ParseExact(input, inputFormat, CultureInfo.InvariantCulture) .ToString(outputFormat,CultureInfo.InvariantCulture); } 

工作示例: https : //dotnetfiddle.net/gQ11qs