[英]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.