对于有效的DateTime(错误显示无法识别字符串)
本文关键字:显示 识别 字符串 错误 于有效 有效 DateTime | 更新日期: 2023-09-27 18:13:19
我正在尝试将字符串格式的值转换为dd/MM/yyyy格式的日期类型。它运行得很好,但当我在文本框中输入fromdate(dd/MM/yyyy(时,它很好,在文本框输入todate(dd/MM/yyyy(,它会给出一个错误,即字符串未被识别为有效的日期时间。我不知道到底出了什么问题。相同的代码在另一个应用程序上运行,运行良好,但在我的应用程序中显示错误。
下面我使用了数组作为所需的格式,也使用了拆分。
string fromdate = punchin.ToString();
string[] arrfromdate = fromdate.Split('/');
fromdate = arrfromdate[1].ToString() + "/" + arrfromdate[0].ToString() + "/" + arrfromdate[2].ToString();
DateTime d1 = DateTime.Parse(fromdate.ToString());
尝试使用DateTime.TryParseExact
,如下
DateTime date;
if (DateTime.TryParseExact(inputText, "MM/dd/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out date))
{
// Success
}
如果您知道输入日期时间的格式,就不需要进行任何字符串操作。但您需要提供正确的日期和时间格式字符串
我收到了2013年5月13日下午12:21:35从日期字符串
使用DateTime.TryParseExact,您不必基于/
拆分字符串,然后从数组中获取前三项,而只需执行以下操作:
DateTime dt;
if (DateTime.TryParseExact("5/13/2013 12:21:35 PM",
"M/d/yyyy hh:mm:ss tt",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt))
{
//date is fine
}
使用单个d
和单个M
,因为它可以容纳一位数和两位数的日/月部分您可以简单地传递punchin
作为字符串参数,在字符串类型上调用ToString
是多余的
尝试:
DateTime.ParseExact(fromdate, "MM/dd/yy", CultureInfo.InvariantCulture)
显然,您可以重新格式化以上内容,并通过创建与正在解析的字符串相关的CultureInfo实例来使用不同的提供程序,还可以修改格式字符串以反映该区域性或容纳更多的日期部分