[英]Microsoft Edge - C# Error - String was not recognized as a valid DateTime
嗨,我的MVC Controller Get方法中日期时间格式面临的问题。 从Firefox,Chrome,Internet Explorer发送请求时,它的工作正常,但是当请求来自Microsoft Edge浏览器时,它会引发异常:
异常:字符串未被识别为有效的DateTime。
示例代码在这里-
public JsonResult GetFYDetailsForDate(string date)
{
//input date = "6/13/2018"
DateTimeStyles dateTimeStyles = DateTimeStyles.AssumeLocal;
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
var culturedDate1 = DateTime.ParseExact(date, "M/d/yyyy", new System.Globalization.CultureInfo("en-US"));
var culturedDate = DateTime.Parse(date, culture, dateTimeStyles);
}
如果请求来自Chrome,Firefox和Internet Explorer,则输入日期为“ 6/13/2018”,解析日期输出为“ 6/13/2018 12:00:00 AM”。
**要解决此问题,我们可以从日期字符串中提取日期,月份和年份,但是我不想这样做。 只想知道来自Microsoft Edge浏览器的请求出了什么问题。
来自Microsoft Edge浏览器的输入日期字符串有问题。 日期字符串包含字符(Char)8206 ,这就是C#无法解析日期并引发错误的原因。 可见的字符串长度为9,但实际的字符串长度为14。因此,我从字符串中删除了那些隐藏的字符,并且现在可以正常工作了。
在我以前用来清理字符串的代码段下面,请提出实现此目的的更好,更有效的方法。
谢谢。
string sanitizedDateString = new String(inputDate.ToCharArray().Where(x => x != (Char)8206).ToArray());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.