2012-07-25 36 views
0

嗨,由於某種原因,我不能做一個日期字符串比較?舉例來說:日期格式的字符串比較不會工作?

public List<HireDate> GetHireDate(string anything) 
{ 
List<HireDate> hiredate = hiredates.Where(n => 
string.Equals(n.HireFromDate, anything, StringComparison.CurrentCultureIgnoreCase) 
).ToList(); 
return hiredate; 
} 

它不會工作?如果我輸入一個文本框13/07/2012這是它如何存儲它返回一個404找不到?

輸出看起來像這樣從一個普通的列表/ GET請求:

<ArrayOfHireDate> 
<HireDate> 
<HireFromDate>13/07/2012</HireFromDate> 
<HireToDate>28/07/2012</HireToDate> 
<NumberOfDaysHired>15</NumberOfDaysHired> 
</HireDate> 
</ArrayOfHireDate> 

有另一種方式來找到它正斜槓的字符串?例如使用/在任何網絡字符串比較器不起作用,它總是會拋出404找不到?

+0

n.HireFromDate是一個Date對象還是一個字符串對象?在一個日期的情況下,我會使用n.HireFromDate.ToString(「dd/MM/yyyy」)指定日期格式......它如何不起作用,它不會編譯? – XhkUnlimit 2012-07-25 23:57:57

+0

HireFromDate是一個'公共字符串HireFromDate'它編譯我得到404沒有找到壽。我縮小到字符串比較壽。 – 2012-07-25 23:59:24

+0

如果這將是一個正常的asp.net服務器,我會說什麼iis錯誤是說,但我從來沒有與wpf工作過...一個簡單的404似乎很奇怪,我..不是嗎? – XhkUnlimit 2012-07-26 00:03:18

回答

1

兩件事情:

1)將字符串在另一個字符串中,要做到這一點最常見的方式是使用String.Format。該方法採用格式字符串(如"Date: {0} Time: {1}")和一堆參數。每個出現的字符串中的{0}被第一個參數替換,{1}被第二個等替換。還有其他選項可以在字符串中格式化參數,請參閱the MSDN page on String.Format

2)如果您有一個URL,並且您的應用程序中有404,請首先驗證URL的語法是否正確。手動直接在瀏覽器中嘗試在程序中創建的URL,如果不起作用,請查找實際用於提供參數的語法。例如,它可能是日期必須被格式化爲13-07-2012而不是13/07/2012它的工作。如果是這樣,你可以通過選擇合適的CultureInfo來解決這個問題。

對於任何DateTime date對象,格式化它使用任何你想要的CultureInfo,使用ToString過載,並指定d作爲格式的短日期。例如,使用不變的文化:

var str = date.ToString("d", CultureInfo.InvariantCulture); 

其它格式字符串可以發現here

+0

+1謝謝你Virtlink – 2012-07-26 01:52:25