2011-05-27 71 views
0

我在嘗試過濾兩個日期之間的列表時出現問題。我有一個解決方案在我們的本地機器.NET 3.5上運行。解決方案運行良好,沒有任何錯誤。但是,當我把它放在我們的服務器上(2008)時,我得到了服務器上日期和時間格式的問題

System.FormatException:String未被識別爲有效的DateTime。

如果將機器日期/時間格式從英語(英國)更改爲英語(美國),我可以在本地重新創建問題。

問題是我已經將服務器設置爲與本地解決方案完全相同,我仍然收到錯誤。

所涉及的代碼是

public DateTime StartDate 
    { 
     get 
     { 
      if (this.ViewState["StartDate"] != null) 
      { 
       return DateTime.Parse(this.ViewState["StartDate"].ToString());  
      } 
      else { return DateTime.Today.AddYears(-1); } 
     } 
     private set 
     { 
      this.ViewState["StartDate"] = value.ToString(); 
     } 
    } 

    public DateTime EndDate 
    { 
     get 
     { 
      if (this.ViewState["EndDate"] != null) 
      { 
       return DateTime.Parse(this.ViewState["EndDate"].ToString()); 
      } 
      else { return DateTime.Today; } 
     } 
     private set 
     { 
      this.ViewState["EndDate"] = value.ToString(); 
     } 
    } 

請幫幫忙!

回答

1

使用ParseExact。這將允許您指定日期格式,而不考慮計算機的區域設置。

很多關於堆棧溢出的問題。

.NET Parsing string into DateTime

+2

+1。這就是我的意思! D'哦! – 2011-05-27 10:53:47

+0

嗨保羅謝謝你。我是企業主,所以我會將其傳遞給我們的開發人員。 – 2011-05-27 10:59:22