gpt4 book ai didi

c# - 日期时间格式混淆美国和欧洲

转载 作者:太空宇宙 更新时间:2023-11-03 22:09:05 25 4
gpt4 key购买 nike

我有这种 xml,其中 1st jan 和 1st feb 是实际格式,意思是 dd.mm.yyyy。

<?xml version="1.0" encoding="utf-8"?>
<eventManager>
<event>
<name>brith day0</name>
<place>home</place>
<latitude>60.170133</latitude>
<longitude>24.938428</longitude>
<date>01.01.2011</date>
<time>00:00</time>
<img>birthday.jpg</img>
</event>
<event>
<name>brith day0</name>
<place>home</place>
<latitude>60.170133</latitude>
<longitude>24.938428</longitude>
<date>01.02.2011</date>
<time>23:00</time>
<img>birthday1.jpg</img>
</event>
</eventManager>

然后是一个名为 event 的类,它从上面的 xml 事件中获取所有数据。现在我的目的是检查两个日期是否相等。对于以下情况,它是正确的。但是根据上面的xml格式,并不是这样。

if (CompareSameMonth(EventList[0]._date, EventList[1]._date)) { }

bool CompareSameMonth(DateTime dt1, DateTime dt2)
{
bool same = false;

Debug.WriteLine("dt1.Month "+dt1.Month.ToString()); // output dt1.Month 1
Debug.WriteLine("dt2.Month "+dt2.Month.ToString()); // output dt2.Month 1

if (dt1.Year == dt2.Year && dt1.Month == dt2.Month)
same = true;

return same;
}

如何使用 c# wp7 解决这个问题?

添加更多信息如何将 XML 获取到 EventList:-

public void ParseXml(字符串内容) {

        m_XMLContent = XDocument.Parse(content);

var data = from query in m_XMLContent.Descendants("event")
select new Event
{
name = (string)query.Element("name"),
place = (string)query.Element("place"),
latitude = (double)query.Element("latitude"),
longitude = (double)query.Element("longitude"),
_date = (DateTime)query.Element("date"),
_time = (DateTime)query.Element("time"),
imgLink = (string)query.Element("img")
};

EventList.Sort(new DateTimeComparer());

}

public class DateTimeComparer : IComparer<Event>
{
public int Compare(Event x, Event y)
{
return x.date_time.CompareTo(y.date_time);
}
}

最佳答案

对于日期解析和比较,您必须使用 CultureInfo 对象。
对于解析 - 美国或欧洲文化,对于比较 - Invariant culture .

string s1 = "01.01.2011";
string s2 = "01.02.2011";
bool result;
CultureInfo culture = CultureInfo.CreateSpecificCulture("de-DE");
DateTimeStyles styles = DateTimeStyles.None;
DateTime dateOne;
DateTime dateTwo;

if (DateTime.TryParse(s1, culture, styles, out dateOne) && DateTime.TryParse(s2, culture, styles, out dateTwo))
{
result = dateOne.Equals(dateTow);
}

关于c# - 日期时间格式混淆美国和欧洲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com