【发布时间】:2013-07-02 17:26:40
【问题描述】:
目前我正在使用DateTime.Now.ToLongDateString() 设置日期属性,尽管我想在日期中更详细。目的是根据项目的日期执行排序,目前这将给出格式为Thursday, July 4, 2013 的日期。如果多个项目在同一天具有相同的日期属性,则不执行排序。是否有 DateTime.Now 的功能,它允许具有秒数的日期属性?
请注意,日期和年份仍必须包括在内,因为排序可能会在数天或数年内发生,但同一天也可能有多个该项目的实例。您会提出什么建议,或者有更好的方法来解决这个问题?此外,这必须适用于任何文化和任何时区。
编辑
在我的 MainPage 中,我用一组图片填充了一个名为 Recent 的 ListBox。在我的设置页面中,用户可以选择升序或降序排序顺序,并且基于此,在填充列表框之前必须对集合进行相应的排序。
MainPage.xaml.cs
protected override void OnNavigatedTo(NavigationEventArgs e)
{
ObservableCollection<Selfie.Models.Picture> listItems = new ObservableCollection<Selfie.Models.Picture>(PictureRepository.Instance.Pictures);
if (Settings.AscendingSort.Value)
{
listItems.OrderBy(x => x.DateTaken);
Recent.ItemsSource = listItems;
}
else
{
listItems.OrderByDescending(x => x.DateTaken);
Recent.ItemsSource = listItems;
}
}
我有一个类可以将 DateTime 作为图片的属性进行序列化和反序列化,该类应用于 DateTaken,我正在尝试对其进行排序。
【问题讨论】:
-
你有什么理由使用字符串而不是直接操作
DateTime? -
如果你得到一个包含秒的字符串,同一秒的值会发生什么?不同时区的日期呢?
-
我已将 DateTaken 属性从字符串类型保存为 DateTime 类型。但是,我确实希望不包括时区,因为用户可能在不同的时区,我希望严格根据 DateTime 属性执行排序。
-
@Matthew 您始终可以将 DateTime 存储为 UTC DateTime。见msdn.microsoft.com/en-us/library/…
-
使用
u格式说明符的msdn.microsoft.com/en-us/library/az4se3k1.aspx#Roundtrip 怎么样?这有什么不同?