2013-03-15 70 views
0

這是我第一篇文章。該應用程序是我已經設置了培養應用爲EN-GB一個winform但同時檢查並保存我將其轉換回爲en-US我得到這個錯誤字符串未被recornized爲有效的DateTime字符串未被識別爲有效日期時間

CultureInfo currentCulture = new CultureInfo("en-US"); 
string strCheckDate = CheckConvertCulture(input); 
string date = DateTime.Now.ToString("M/d/yyyy"); 

if (DateTime.ParseExact(strCheckDate,currentCulture.ToString(),null)> DateTime.ParseExact(date,currentCulture.ToString(),null)) 
{ 
     return false; 
} 
else 
{ 
     return true; 
} 

我在做什麼錯在這裏

這是我converCurrentCulture代碼

string strdate = string.Empty; 
CultureInfo currentCulture = CultureInfo.CurrentCulture; 
System.Globalization.DateTimeFormatInfo usDtfi = new System.Globalization.CultureInfo("en-US", false).DateTimeFormat; 
if (currentCulture.ToString() != "en-US") 
{ 
    strdate = Convert.ToDateTime(Culturedate).ToString(usDtfi.ShortDatePattern); 
} 
else 
{ 
    strdate = Culturedate; 
} 

    return strdate; 

這是我做過什麼來得到它的工作,但如果用戶選擇像29/02/2013無效的日期將它的工作不確定,

CultureInfo currentCulture = new CultureInfo("en-GB"); 
string date = DateTime.Now.ToString("dd/MM/yyyy", currentCulture); 

由於應用程序默認爲EN-GB

if (DateTime.Parse(input) > DateTime.Parse(date)) 
{ 
    return false; 
} 
else 
{ 
    return true; 
} 
+1

沒有提供'CheckConvertCulture'的定義,你不會得到一個好的答案。 – spender 2013-03-15 11:33:56

+0

什麼是'strCheckDate'和'CheckConvertCulture'? – 2013-03-15 11:35:03

+0

strCheckDate只是從下拉日期,需要找出如何編輯我的代碼,並把CheckConvertCulture :) – Adrian 2013-03-15 11:39:03

回答

0

如果這實際上是你的代碼:

CultureInfo currentCulture = new CultureInfo("en-US"); 
string strCheckDate = CheckConvertCulture(input); 

if (DateTime.ParseExact(strCheckDate,currentCulture.ToString(),null) 

那麼問題是在你的ParseExact,轉化爲

if (DateTime.ParseExact(strCheckDate, "en-US", null)) 

你會被打賭然後解析:

string format = "MM/dd/yyyy HH:mm:ss"; 
string strCheckDate = input.ToString(format); 

// See note below about "why are you doing this?  
if (DateTime.ParseExact(strCheckDate, format)) 

我的一個大問題是 - 爲什麼你要這樣做?如果你有兩個日期,你爲什麼要將它們都轉換爲字符串,然後將它們轉換回日期進行比較?

return (input > date); 

請參閱MSDN documentation以正確使用DateTime.ParseExact。

+0

我有一個組合框,用戶選擇日期以便以字符串格式然後我得到當前的日期,並將其轉換爲當前的文化,這是en-GB,但我保存在en-US – Adrian 2013-03-15 12:14:57

+0

沒問題,但沒有任何理由將當前日期轉換爲字符串然後回到日期。不要讓事情比他們需要的更復雜。 – 2013-03-15 12:53:15

+0

如果我不轉換它,如何檢查日期格式的字符串? – Adrian 2013-03-15 12:55:12

相關問題