1

如何使用 DateTime.ParseExact 或任何其他函数在 c# 中将诸如“20/11/2013”​​之类的日期字符串转换为这种格式 2013-11-20 00:00:00.000。

4

3 回答 3

3

使用 DateTime.ParseExact 您可以按如下所述进行:

    var stringToConvert = "20/11/2013";
    var convertedDate = DateTime.ParseExact(stringToConvert, "dd/MM/yyyy", CultureInfo.InvariantCulture);

   // dd : date
   // MM : minute
   // yyyy : year
   // hh : hour
   // mm : minute
   // ss : second
    var dateFormatMMddYYYY = convertedDate.ToString("MM-dd-yyyy");
    var dateFormatddMMYYYY = convertedDate.ToString("dd-MM-yyyy");
    var dateFormatyyyyMMdd = convertedDate.ToString("yyyy-MM-dd");

注意:在转换为日期时间之前,请确保您的字符串能够转换为日期时间。

您可以为此使用Datetime.TryParse函数。

于 2013-11-13T12:47:42.677 回答
1

您可以使用DateTime.TryParse(...)方法。

var dtString = "01/01/2000 01:00:00 AM";
DateTime dt;
var converted = DateTime.TryParse(dtString, out dt);
if (converted) {
    // Converted okay.
    var newFormat = dt.ToString("yyyy/MM/dd hh:mm:ss");
    // Outputs: 2001/01/01 01:00:00
} else {
    // Failed to convert.
}

这很方便,因为它允许您检查指定的 DateTime 字符串是否转换正常。

于 2013-11-13T12:51:09.077 回答
0
string originalShortDateTime = "20/11/2013";
string inputFormat = "dd/MM/yyyy";
DateTime result = DateTime.ParseExact(originalShortDateTime, 
inputFormat, CultureInfo.InvariantCulture); //or a specific culture

然后,我们将使用DateTime.ToString()with 参数输出首选格式:

string outputDateString = result.ToString("yyyy-MM-dd hh:mm:ss.fff");
于 2013-11-13T12:39:21.173 回答