11159
(あ)
1
Outlookメールメッセージを取得で得たMailList型変数の中に格納されている、受信日時を、古い受信日順番に取得したいです
list
= list.OrderBy(Function(m) m.Header("Date")).ToList
をやってみたのですが、新しく来たメールの日付順になっていしまいます。
この場合、古いメールの受信日時にする方法はありますか?
例 メールボックス内には下記のようになっている
2021/2/22に受信
2021/2/24に受信
2021/2/25に受信
通常のアクティビティで取得し、日付だけExcelに書き出すと下記になる
2021/2/25
2021/2/24
2021/2/22
これを下記のように並べ替えてExcelに書き出したいです
2021/2/22
2021/2/24
2021/2/25
Yoichi
(Yoichi)
2
こんにちは
が入力データなら
list.OrderBy(Function(m) m.Header("Date")).ToList
で昇順にソートできると思いますが、どのように確認していますでしょうか?
ただ上記はUS表記の日付文字列となっているため、入力によっては正しい結果とならない場合がありますので
list.OrderBy(Function(m) Datetime.Parse(m.Header("Date"))).ToList
として、DateTime型でソートした方が良いと思います。
shinji
(みやぎ)
3
Yoichiさんの書かれているとおりですが、
m.Header(“Date”) は メール送信元のサーバーでセットされた時刻が文字列で入りますが「月/日/年+時刻」だったりします。
なので「年/月/日+時刻」に変換してから並び替えないと、並びが保証できません。(Datetime.Parse や Cdateなどで変換する)
私も以前にハマりました。
こういうときは、以下画像のようにリストをデバッグ表示してみると「なぜなのか?」を自分で確認できると思います。
system
(system)
Closed
4
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.