【问题标题】:How to convert Feb 19, 2015,22:19:50 to 2/19/2015 22:19:50 in C#?如何在 C# 中将 2015 年 2 月 19 日 22:19:50 转换为 2/19/2015 22:19:50?
【发布时间】:2015-02-19 06:55:23
【问题描述】:

如何在 C# 中将 Feb 19, 2015,22:19:50 转换为 2/19/2015 22:19:50

我尝试过类似下面的方法

DateTime dateTime = DateTime.ParseExact("Feb 19, 2015,22:19:50",
                                        "MMM dd, yyyy;HH:mm:ss",
                                        CultureInfo.InvariantCulture);

但我得到以下错误

在 mscorlib.dll 中发生了“System.FormatException”类型的第一次机会异常附加信息:字符串未被识别为有效的 DateTime。"

【问题讨论】:

    标签: c# string datetime


    【解决方案1】:

    首先,您的字符串和格式不完全匹配。在您的字符串中,您的年份和小时之间有一个逗号,但在您的格式中,您有一个分号。当您使用 DateTime.ParseExactDateTime.TryParseExact 方法进行自定义解析时,您的字符串和格式必须与您使用的 IFormatProvider 完全匹配。

    正确解析字符串后,您可以使用.ToString() 方法将其格式化为M/dd/yyyy HH:mm:ss 格式和将/ 作为DateSeparator: 作为TimeSeparator 的文化,如InvariantCulture .

    string s = "Feb 19, 2015,22:19:50";
    DateTime dt;
    if(DateTime.TryParseExact(s, "MMM dd, yyyy,HH:mm:ss", CultureInfo.InvariantCulture,
                              DateTimeStyles.None, out dt))
    {
       Console.WriteLine(dt.ToString("M/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture));
       // 2/19/2015 22:19:50
    }
    

    这里是 demonstration

    【讨论】:

    • 嗨,Soner,您的解决方案非常有效!非常感谢。
    • @user2524056 很高兴为您提供帮助。
    • @Indu 如果是正确答案,请将其标记为答案,以便其他可能有此问题的人找到答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 2016-05-02
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多