【问题标题】:"string was not recognized as a valid datetime format" in string date functions? [duplicate]字符串日期函数中的“字符串未被识别为有效的日期时间格式”? [复制]
【发布时间】:2015-01-12 14:57:52
【问题描述】:

我试图从我给定的字符串日期中减去一天。当我尝试以下格式时,它会显示错误。

string fdate="12/11/2014"//(dd/MM/yyyy) format
string date2 = (DateTime.Parse(fdate).AddDays(-1)).ToString("dd/MM/yyyy");

请指出我做的错误...

【问题讨论】:

  • 你的例子works fine for me。您的计算机是否有不以dd/MM/yyyy 格式显示日期的区域设置?
  • @Scott Chamberlain,我的系统格式是“MM/dd/yyyy”。但我想要“dd/MM/yyyy”格式的日期。这就是为什么要使用字符串。
  • 顺便问一下你的CurrentCulture是什么?

标签: c# datetime


【解决方案1】:

您的代码可能会根据系统日期时间的格式工作。尝试使用ParseExact 方法使用格式解析字符串。

string fdate = "12/11/2014";
string date2 = (DateTime.ParseExact(fdate, "dd/MM/yyyy", CultureInfo.InvariantCulture).AddDays(-1)).ToString("dd/MM/yyyy");

More information

【讨论】:

  • 是的,它有效。我可以知道 Parse 和 ParseExact 之间的区别吗??
  • Parse 考虑系统格式并解析给定的字符串,ParseExact 接受自定义日期格式作为第二个参数并准确解析您传递的格式。
  • 我在数据库中有一个字符串日期,我像 "string todate=dr[1].ToString();" 一样检索它并将这个字符串日期转换为整数,例如 "Int todate1=Convert.ToInt32(todate);" 但它显示错误“输入字符串的格式不正确” 告诉我原因??
  • @BrunoBlane todate 的值是多少?
  • **21/11/2014**(dd/MM/yyyy) 格式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 2012-04-24
相关资源
最近更新 更多