【问题标题】:Issue in Converting Date Time c#转换日期时间 c# 中的问题
【发布时间】:2012-12-30 09:50:41
【问题描述】:

我在转换日期时间时遇到问题

var date = DateTime.Now;
txtdate.Text = date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

//我需要稍后将它作为 DateTime 变量传递给它。当我重新转换它给我一个错误)

DateTime dtReconvert =Convert.toDateTime(txtdate.Text);  //Error String was not recognized as a valid DateTim

当我将日期时间设置为“01/01/2013”​​之类的内容时 并将其转换为日期时间它不会给我任何错误。

【问题讨论】:

标签: c# datetime type-conversion


【解决方案1】:

使用DateTime.ParseExact 格式为"dd/MM/yyyy"

DateTime dtObject = DateTime.ParseExact(txtdate.Text, 
                                        "dd/MM/yyyy", 
                                        CultureInfo.InvariantCulture);

【讨论】:

  • 为什么你能在转换像“01/01/2012”这样的日期时详细说明它工作得很好,而当你像“23/01/2012”那样做时会给我我所说的问题。否则谢谢
  • @user1884709,可能是因为您当前的文化支持MM/dd/yyyy" 样式日期,因为01/01/2012 可以是2012 年1 月1 日,它被解析。稍后,您将使用与当前文化不同的自定义格式将日期转换为字符串,这就是您无法将其解析回日期时间对象的原因。您必须使用自定义格式
【解决方案2】:

试试这个

DateTime.ParseExact(txtdate.Text, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture)

Convert.ToDateTime(txtdate.Text, CultureInfo.InvariantCulture)

Microsoft 已采用 MM/dd/yyyy 作为与文化无关的格式,这是一种模棱两可的格式,我不想在其上构建大型系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 2018-12-07
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    相关资源
    最近更新 更多