在 C# 中将字符串 dd-MM-yyyy 转换为 DateTime yyyy-MM-dd
Converting string dd-MM-yyyy to DateTime yyyy-MM-dd in C#
我有一个这种格式的字符串:
21-10-2014 15:40:30
我想将其设为以下格式的 DateTime:
2014-10-21 15:40:30
我试过:
DateTime dt = DateTime.ParseExact("21-10-2014 15:40:30", "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
但是运气不好,抛出异常String was not recognized as a valid DateTime
编辑
我也试过:
DateTime dt = DateTime.ParseExact("21-10-2014 15:40:30", "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
两个参数的格式相同。例外是相同的,所以问题不是格式之间的差异。我之前检查过。
您输入的字符串包含 left-to-right mark characters, which you can see by pasting it in an Unicode-aware editor and viewing whitespace characters. See also Ideone(仅在编辑模式下可见)。
Clean up your input:
using System;
using System.Globalization;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string dateTimeString = "21-10-2014 15:40:30";
dateTimeString = Regex.Replace(dateTimeString, @"[^\u0000-\u007F]", string.Empty);
string inputFormat = "dd-MM-yyyy HH:mm:ss";
string outputFormat = "yyyy-MM-dd HH:mm:ss";
var dateTime = DateTime.ParseExact(dateTimeString, inputFormat, CultureInfo.InvariantCulture);
string output = dateTime.ToString(outputFormat);
Console.WriteLine(output);
}
}
输出:
2014-10-21 15:40:30
我有一个这种格式的字符串:
21-10-2014 15:40:30
我想将其设为以下格式的 DateTime:
2014-10-21 15:40:30
我试过:
DateTime dt = DateTime.ParseExact("21-10-2014 15:40:30", "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
但是运气不好,抛出异常String was not recognized as a valid DateTime
编辑
我也试过:
DateTime dt = DateTime.ParseExact("21-10-2014 15:40:30", "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
两个参数的格式相同。例外是相同的,所以问题不是格式之间的差异。我之前检查过。
您输入的字符串包含 left-to-right mark characters, which you can see by pasting it in an Unicode-aware editor and viewing whitespace characters. See also Ideone(仅在编辑模式下可见)。
Clean up your input:
using System;
using System.Globalization;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string dateTimeString = "21-10-2014 15:40:30";
dateTimeString = Regex.Replace(dateTimeString, @"[^\u0000-\u007F]", string.Empty);
string inputFormat = "dd-MM-yyyy HH:mm:ss";
string outputFormat = "yyyy-MM-dd HH:mm:ss";
var dateTime = DateTime.ParseExact(dateTimeString, inputFormat, CultureInfo.InvariantCulture);
string output = dateTime.ToString(outputFormat);
Console.WriteLine(output);
}
}
输出:
2014-10-21 15:40:30