2

現在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 を Picture のプロパティとしてシリアライズおよびデシリアライズするクラスがあります。これはDateTaken、並べ替えようとしている に適用されます。

4

8 に答える 8

0

Reedが述べたように、DateTimeで直接並べ替えることができる場合は、そうしてください。ただし、それができない場合は、非常に具体的な方法で文字列を並べる必要があります。多分このようなもの:

date.ToString("YYYYMMddHHmmss")

日付を文字形式で並べ替えるには、日付の一部を正しい順序で並べ替える必要があるためです。

于 2013-07-04T16:33:11.600 に答える
0

DateTime.Now.ToString("YYYYMMddHHmmss")または使用できますDateTime.Now.Ticks

于 2013-07-04T16:34:00.270 に答える