2017-06-01 31 views
1

因此,我試圖將C#中的DateTime的語言從英語更改爲法語。它昨天工作完美,做了一些改變(與日期無關)今天回來,並且遇到了這個錯誤:更改日期時間錯誤的語言

在msorlib.dll中發生了一個類型爲System.FormatException的異常,但是沒有在用戶代碼中處理。附加信息:字符串未被識別爲有效的日期時間。

這裏是我的代碼:

 string period; 

     period = Convert.ToString(Request.QueryString["Period"]); 
     string format = "dddd, MMMM dd, yyyy"; 

     string fDate = from.ToLongDateString(); 
     var fr = DateTime.ParseExact(fDate, format, new CultureInfo("en-US")); 
     var fromDate = fr.ToString("D", new CultureInfo(this.BGUser.UICultureInfoString)); 

     string tDate = to.ToLongDateString(); 
     var td = DateTime.ParseExact(tDate, format, new CultureInfo("en-US")); 
     var toDate = td.ToString("D", new CultureInfo(this.BGUser.UICultureInfoString)); 

     if (period == null) 
      return "<b>" + this.Translate("Orders due ", 4386) + fromDate + " - " + toDate + "</b>"; 
     else if (period.Equals("archive")) 
      return "<b>" + this.Translate("Orders due before ", 4387) + toDate + "</b>"; 
     else if (period.Equals("future")) 
      return "<b>" + this.Translate("Orders due after ", 4388) + fromDate + "</b>"; 

它是專門上線

 var fr = DateTime.ParseExact(fDate, format, new CultureInfo("en-US")); 

將得到該錯誤,並是傳遞到函數和正確的DateTime變量。任何幫助深表感謝!

+1

我強烈地感覺你做了不必要的事情,因爲你的'從'和'到'_already_看起來像'DateTime'。 O.O –

+0

@SonerGönül感謝您的回覆。你有更好的方法來改變日期的語言嗎?這只是我通過我的研究發現的方法 –

+1

.NET *中的DateTime值沒有**「語言」*,您究竟想要在這裏做什麼? –

回答

0

感謝您的意見。我把你的意見考慮在內,並做了這似乎工作

 var fromDate = from.ToString("D", new CultureInfo(this.BGUser.UICultureInfoString)); 
     var toDate = to.ToString("D", new CultureInfo(this.BGUser.UICultureInfoString));