c# - 字符串到日期时间无法转换 - C#

标签 c# string datetime

我在 MSDN 中找到了一个字符串到日期时间转换的示例。但是不行,掉进catch()。为什么这个代码块不起作用?

DateTime dateValue;
      string dateString = "2/16/2008 12:15:12 PM";
      try {
         dateValue = DateTime.Parse(dateString);
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
      }   
      catch (FormatException) {
         Console.WriteLine("Unable to convert '{0}'.", dateString);
      }

最佳答案

您使用的是当前文化中日期/时间格式的任何概念 - 我猜您所处的文化通常是日早于月。

如果您知道格式,我通常会使用不变文化和 TryParseExact - 绝对不要使用Parse 和一个 catch堵塞;要么使用 TryParseExactTryParse .在这种情况下:

if (DateTime.TryParseExact(dateString, "M/d/yyyy hh:mm:ss tt",
                           CultureInfo.InvariantCulture, 0, out dateValue))
{
    Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
}
else
{
    Console.WriteLine("Unable to convert '{0}'.", dateString);
}

如果您不知道输入格式,但您知道要使用的区域性,我会使用具有适当区域性的DateTime.TryParse

关于c# - 字符串到日期时间无法转换 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9953830/

相关文章:

c# - Entity Framework - 如何查询多个表并选择要显示的列

c# - 哪个是paypal cancel url响应参数

unix - 将 Unix 路径转换为 ​​DOS 路径

java - 为什么trim()给我字符串常量池引用?

c# - .net 压缩用 Crystal Reports 生成的 pdf

c# - 如何将所有硬币从 3D 空间移动到 2D Canvas 的一角

android - URI 生成器结果中有一个意外的冒号(Android 编程)

python - 使用 Python strptime 解析月份名称时出现 UnicodeEncodeError

C# DateTime 计算和 ToString

mysql - sql,限制时间