簡體   English   中英

Microsoft Edge-C#錯誤-無法將字符串識別為有效的DateTime

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM