2013-07-15 86 views
2

我有一個具有同步的程序。這意味着我需要保存上次同步日期並檢查是否需要同步。日期時間格式處理

所以,我有這樣的:

IS.SaveContactsRetrieveDate(DateTime.Now.ToString("dd.MM.yyyy")); 

保存日期隔離儲存。

然後,當我打電話IF:

DateTime toDate = DateTime.Now; 

string contactsRetriveDate = IS.ReadContactsRetriveDate(); 
if (contactsRetriveDate == "" || DateTime.Compare(toDate, DateTime.Parse(contactsRetriveDate)) == 1) 
{ 
    MessageBox.SHow(""); 
} 

的問題是,當用戶改變區域代碼失敗在這裏:

DateTime.Compare(toDate, DateTime.Parse(contactsRetriveDate)) 

由於不正確的輸入錯誤。

據我所知,拉脫維亞格式dd.MM.yyyy和美國MM/dd/yyyy - 但我不能找到一個解決辦法...

我需要一個格式解析的日期時間,所以我可以添加幾天,幾周和比較日期。

+0

那麼你可以使用'DateTime.ParseExact'格式 – V4Vendetta

回答

1

您可以使用ParseExact

DateTime.ParseExact(datestring, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture); 

你已經知道的格式,所以你可以去這一點,但要確保字符串在相同的格式,並不會改變。

1

ü可以試試這個:

DateTime toDate = DateTime.Now; 

       string contactsRetriveDate = IS.ReadContactsRetriveDate(); 
       DateTime contactsRetriveDat = Convert.ToDateTime(contactsRetriveDate); 
       if (contactsRetriveDate == "" || toDate.CompareTo(contactsRetriveDat)==0) 
       { 
        MessageBox.SHow(""); 
       } 
2

您應該序列反序列化日期文化無關的方式(其中"d"Standard Date and Time Format Strings的「短日期模式」):

var s = DateTime.Now.ToString("d", CultureInfo.InvariantCulture); 
var d = DateTime.Parse(s, CultureInfo.InvariantCulture);