【问题标题】:DateTime.Parse throws exception "not support in System.Globalization.GregorianCalendar"DateTime.Parse 抛出异常“在 System.Globalization.GregorianCalendar 中不支持”
【发布时间】:2013-05-10 09:40:47
【问题描述】:
string formatString = "MMddyyyyHHmmss";
string sample = "20100611221912";
DateTime dt = DateTime.ParseExact(sample, formatString, System.Globalization.CultureInfo.InvariantCulture);

具体抛出的异常是:

System.FormatException:该字符串表示的 DateTime 在日历 System.Globalization.GregorianCalendar 中不受支持。

【问题讨论】:

  • 查看 fmt 和示例:MM == 20.
  • 你认为你有什么日期?它与您提供的格式匹配吗?

标签: c# string datetime


【解决方案1】:

你的格式应该是:

string formatString = "yyyyMMddHHmmsss";

(也可以是"yyyyddMMHHmmsss",如果是06-Noveber-2010)

考虑到您的日期是dt = {11/06/2010 10:19:12 PM}(2010 年 6 月 11 日)

对于您当前的格式:

MMddyyyyHHmmss
20100611221912

MM 不能是20,因为MM 代表月份。所以你的代码应该是:

string formatString = "yyyyMMddHHmmsss";
string sample = "20100611221912"; 
DateTime dt = DateTime.ParseExact(sample, formatString, System.Globalization.CultureInfo.InvariantCulture);

【讨论】:

  • 我们不能把字符串转换成其他指定的格式而不是原始的日期时间吗?我有“yyyyMMddHHmmsss”格式的日期时间字符串,想将其转换为日期时间“MMddyyyyHHmmss”
  • @user2323308,当然可以,首先将其解析为DateTime对象,然后使用DateTime.ToString("MMddyyyyHHmmss");
【解决方案2】:

如果您不是要导入 611 年第 20 个月的第 10 天,则您的格式字符串或数据有误。你的意思是用"yyyymmddHHmmss" 导入吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2010-12-04
    • 1970-01-01
    相关资源
    最近更新 更多