XMLの世界で日時を表すデータは以下のような書き方をする
<ROOT DATE="2008-02-27T19:28:24.447+09:00" />
かなりいけてる日付型で、いちおう文句はつけようがない。
ただプログラムの世界ではなかなか難しいデータ形で、読み込むのも出力するのも1工夫が必要。
でもLinq to XMLのサポートクラス群たちはいとも簡単に解決してくれます。
var a = new XElement("ROOT", new XAttribute("DATE", DateTime.Now));
var b = a.Attribute("DATE");
var c = (DateTime) a.Attribute("DATE");
サンプルコードはこんな感じ。
現在日時をROOT要素のDATE属性に設定して(1行目)、DATEをさらに取り出している(2行目)。DateTimeへのキャストを取り出す。
+ a <ROOT DATE="2008-02-27T19:31:20.396+09:00" /> System.Xml.Linq.XElement
+ b {DATE="2008-02-27T19:31:20.396+09:00"} System.Xml.Linq.XAttribute
+ c {2008/02/27 19:31:20} System.DateTime
シームレスに、XAttributeの日時型と、DateTimeを変換してしまう。