<?xml version="1.0" ?> <Root> <TIME> <LOCAL>09:00:00</LOCAL> <UTC>09:00:00Z</UTC> <OFFSET>14:00:00+05:00</OFFSET> </TIME> </Root>
<?xml version="1.0" encoding="UTF-8"?> <!-- ############################################################ --> <!-- 2011-01-11T13:31:41 --> <!-- SAS XML Libname Engine Map --> <!-- Generated by XML Mapper, 903000.1.0.20101208190000_v930 --> <!-- ############################################################ --> <!-- ### Validation report ### --> <!-- ############################################################ --> <!-- XMLMap validation completed successfully. --> <!-- ############################################################ --> <SXLEMAP name="ISOtime" version="2.1"> <NAMESPACES count="0"/> <!-- ############################################################ --> <TABLE name="TIME"> <TABLE-PATH syntax="XPath">/Root/TIME</TABLE-PATH> <COLUMN name="LOCAL"> <PATH syntax="XPath">/Root/TIME/LOCAL</PATH> <TYPE>numeric</TYPE> <DATATYPE>time</DATATYPE> <FORMAT width="8">E8601TM</FORMAT> 1 <INFORMAT width="8">E8601TM</INFORMAT> </COLUMN> <COLUMN name="LOCALZONE"> <PATH syntax="XPath">/Root/TIME/LOCAL</PATH> <TYPE>numeric</TYPE> <DATATYPE>time</DATATYPE> <FORMAT width="14">E8601LZ</FORMAT> 2 <INFORMAT width="8">E8601TM</INFORMAT> </COLUMN> <COLUMN name="UTC"> <PATH syntax="XPath">/Root/TIME/UTC</PATH> <TYPE>numeric</TYPE> <DATATYPE>time</DATATYPE> <FORMAT width="9">E8601TZ</FORMAT> 3 <INFORMAT width="9">E8601TZ</INFORMAT> </COLUMN> <COLUMN name="OFFSET"> <PATH syntax="XPath">/Root/TIME/OFFSET</PATH> <TYPE>numeric</TYPE> <DATATYPE>time</DATATYPE> <FORMAT width="14">E8601TZ</FORMAT> 4 <INFORMAT width="14">E8601TZ</INFORMAT> </COLUMN> </TABLE> </SXLEMAP>
1 | 変数Localに対して、INFORMAT要素およびFORMAT要素で、SAS入力形式およびSAS出力形式としてE8601TMを指定します。これにより、拡張形式hh:mm:ss.ffffffで時刻値の読み込みと書き出しが行われます。タイムゾーンインジケータが存在しないため、値のコンテキストはローカルタイムとなります。 |
2 | 変数Localzone (変数Localと同じ値を読み込む変数)に対して、INFORMAT要素でSAS入力形式E8601TMを指定します。これにより、拡張形式hh:mm:ss.ffffffで時刻値が読み込まれます。タイムゾーンインジケータが存在しないため、値のコンテキストはローカルタイムとなります。
一方、FORMAT要素では、SAS出力形式E8601LZを指定します。これにより、拡張形式hh:mm:ss+|-hh:mmで時刻値が出力されます。出力形式E8601LZは、現在のローカルSASセッションによって決定される時刻値の末尾にUTCオフセットを追加します。出力形式E8601LZを使うことで、ローカルタイムの曖昧さをなくすような時刻表記を提供できます。
注: この時刻表記を使用する場合でも、時間に基づく値を混在させないことを推奨します。
|
3 | 変数UTCに対して、INFORMAT要素およびFORMAT要素で、SAS入力形式およびSAS出力形式としてE8601TZを指定します。これにより、拡張形式hh:mm:ss+|-hh:mmで時刻値の読み込みと書き出しが行われます。タイムゾーンインジケータが存在するため、値はUTCで表されるものと仮定されます。その値に対する調整または変換は行われません。 |
4 | 変数Offsetに対して、INFORMAT要素およびFORMAT要素で、SAS入力形式およびSAS出力形式としてE8601TZを指定します。これにより、拡張形式hh:mm:ss+|-hh:mmで時刻値の読み込みと書き出しが行われます。タイムゾーンオフセットが存在するため、タイムゾーンを区別するSAS入力形式を使って変数に時刻値を読み込む場合、その値はタイムゾーンインジケータを通じて要求されるUTC時間に調整されます。ただし、タイムゾーンコンテキストはその値と一緒には保存されません。タイムゾーンを区別するSAS出力形式を使って時刻値を書き出す場合、その値は、ゼロのオフセット値を伴うUTC時間として表現され、ローカルタイムに対する調整は行われません。 |
filename timzn 'C:\My Documents\XML\Time.xml'; filename map 'C:\My Documents\XML\Time.map'; libname timzn xmlv2 xmlmap=map; proc print data=timzn.time; run;