如何将日期字符串从格式X转换为格式Y?
我有一个包含某种格式X日期的字符串(例如2015年12/31/2015
)。 如何将其转换为Y格式(例如2015-12-31 00:00:00
)?
C#拥有自己的DateTime
结构 。 目标是
- 将您的字符串转换为
DateTime
然后 - 将
DateTime
转换回字符串。
首先,您需要获取格式X和Y的格式字符串 。请检查以下两个列表:
- 标准日期和时间格式字符串
- 自定义日期和时间格式字符串
例如,对于12/31/2015
日,所有d
或MM/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