XSLT2.0/XPath2.0 で日付文字列を解析しようとしています。問題は、日付が標準形式ではないため、文字列操作だけでなく計算が必要になることです。具体的に言うと、日付は「yyyyDDD」のパターンで表示されます (そうです、年の後に通算日が続きます)。
たとえば、2013051 == 2013 年 2 月 20 日
私はこの質問をしばらく調査してきましたが、次のような役に立たない多くの回答を見つけました。
- 部分文字列を使用した日付の解析: 通算日から月と日を計算する必要があります
- date:parse-date: Saxon ではサポートされていません (現在、SaxonEE の評価版を使用しています。この拡張機能のサポートが追加される場合は、喜んで耳を傾けます!)
- スクリプトを使用する: コードを簡素化するために、XSLT で MSXML/Javascript から離れようとしています。
- 日付を手で計算する: 最近では、日付を正確に計算するには日付の博士号が必要です...エッジケースが多すぎて、安全に車輪を再発明することはできません。
- 日付を標準形式で XSLT に渡す: 従来のプログラマーのジレンマに戻るために、この XSLT への入力を制御することはできません。
Java メソッドの Date.parse() はまさに私がここで必要としているものであり、XSLT で日付を処理する標準的な方法がないとは信じがたいです。