日期时间格式处理

时间:2013-07-15 09:49:51

标签: c# windows-phone-7 datetime windows-phone-8

我有一个同步的程序。这意味着我需要保存上一个同步日期并检查是否需要同步。

所以,我有这个:

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 - 但我找不到解决方案......

我需要以一种格式解析所有日期时间,因此我可以添加天,周并比较日期。

3 个答案:

答案 0 :(得分:2)

您应该以与文化无关的方式序列化反序列化您的日期(其中"d"Standard Date and Time Format Strings的“短日期模式”):

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

答案 1 :(得分:1)

您可以使用ParseExact

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

你已经知道格式,所以你可以这样做,但要确保字符串格式相同,永远不会改变。

答案 2 :(得分:1)

你可以尝试这个:

 DateTime toDate = DateTime.Now;

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