アラート情報 VOS|テクニカルサポート|日本ストラタステクノロジー株式会社
日本ストラタステクノロジー株式会社

お客さまのビジネスの価値を最大化する、ストラタスの無停止テクノロジー/日本ストラタステクノロジー株式会社

カスタマーサポート

重要なお知らせ

アラート情報 VOS

#Alert-1940 DATE変換における問題について

INTRODUCTION:

VOSオペレーティングシステムでdate変換問題が発生することが確認されました。この問題は、VOSが正確に1から31の範囲で、1または2桁の年にdate/timeストリングが解釈することに伴います。 このアラートは、この問題が適切なテスト、または、ソフトウェアが正確に動作することを確保するためのコード検査をユーザが行えるためのものです。この問題はvos-4792として報告されています。

VOSサブルーチンマニュアルは、s$cv_to_int_date_time サブルーチンは異なるdate/time入力形式の数を受け入れると説明しています。

オンラインマニュアル:

http://stratadoc.stratus.com/

VOS PL/Iサブルーチンマニュアル

VOS COBOLサブルーチンマニュアル

VOS FORTRANサブルーチンマニュアル

VOS Pascalサブルーチンマニュアル

VOS C サブルーチンマニュアル

EXPLANATION:

s$cv_to_int_date_timeは多くのdate/timeフォーマットを受け付けます。この記述は特定の年と月(両方とも数字)、年と月と日(全て数字)、そして、年の前にカンマは用いないフォーマットに影響されます。 このサブルーチンはデリミタとして少なくとも3つのISO/ASCIIキャラクター:ピリオド、フォワードスラッシュ、ハイフンを受け付けることを思い出してください。デリミタが使われることは、テキストストリングの解釈に重要ではないということも思い出してください。唯一要求されることは2つのデリミタが文字列内で同じでなければならないことです。

04-05
04.05
04/05

3つのdate/timeトークンを以下に示します

01-02-03
01/02/03
01.02.03

0づめ(リーディング・ゼロ)も不必要であるが、ここでの説明に一貫させるために用いることにします。
上記のストリングに表されるのは何日ですか? 以下に示すVOSマニュアルで説明されます:

2つのトークン形式(04-05)では、複数のトークンの1つが年を表さなければならない値をもつ場合、他のトークンは月です。(0または、80から99の範囲、32から48の範囲、1980から2048の範囲ならば、トークンの1つが年にならなければなりません)
さもなければ、トークンの1つが月として解釈され、他のトークンが月内で日として解釈されます。月と日の相対的な順番は、languages.tinのカレントプロセス言語のdate_formatアイテムから得られます。US English、Japanese、Koreanのデフォルトdate形式はYY-MM-DDであり、上述の2つのトークンdate-timeストリングは今年の April 5th に変換されます。
French, German, Italian, Spanish のデフォルトdate形式はDD-MM-YYであり、上述の2つのトークンdate-timeストリングは今年の May 4th に変換されます。
3つのトークン形式(01-02-03)では, ファースト・トークン、または、ラスト・トークンが年を表さなければならない値をもつ場合、他の2つのトークンは月と日として解釈されます。年はミドル・トークンにはなりません。ファースト・トークン、ラスト・トークン両方が年で表されれなければならない値(両方が1から31の範囲内)をもたない場合、年、月、日の相対的な順番はlanguages.tinから同様に得られます。
デフォルトdate形式がYY-MM-DDのとき、上述の3つのトークンdate-timeストリングのそれぞれがFebruary 3, 2001に変換され、DD-MM-YYのときには、それぞれがFebruary 1, 2003に変換されます。VOSが明確に年を検出できるときのみ、2つの異なるdate形式がサポートされます。しかしながら、2001年と2031年にわたる31年間はVOSが丁度2桁として表現される年がファーストトークンがラストトークンか判断する材料を持ちません。
この状況はプログラムに対してと同じほど人間をも混乱させます。プログラムの推量は以下の連続で、8キャラクタdate/timeストリングを生成しています。

INPUT EXPECTED DATE VOS INTERPRETATION
12/28/00 December 28, 2000 same.
12/29/00 December 29, 2000 same.
12/30/00 December 30, 2000 same.
12/31/00 December 31, 2000 same.
01/01/01 January 1, 2001 same.
01/02/01 January 2, 2001 February 1, 2001!
01/03/01 January 3, 2001 March 1, 2001!
01/12/01 January 12, 2001 December 1, 2001!
01/13/01 January 13, 2001 invalid!

言うまでもなく、このプログラムは1980から2001年1月を通して適切に稼動して、突然 2001年1月2日にフェイルし始めます。十中八九、この状況を検出する唯一の方法は、2001年に多くの日時について注意深くプログラムをテストするということになります。

要約すると、年が1980年から2000年、2032年から2048年を通し表されるdate/timeストリングは VOSが常に年を見つけられるために明確です。これらの年のために、人間かVOSソフトウェアは最初か最後のどちらかの2-digit年でdate/time入力ストリングを用いられます。そのようなストリングとして、

01/02/99
99-02-01
99.02.01
01-02-99

は全て同一に解釈されます。 人間とVOSソフトウェアの両方とも2桁の年が特定された最初か最後のどちらであろうが明確に確定できます。使用法は languages.tinで流行言語の特定された1つのフォーマットと一致しなければならなりません。4桁の年を使うことはyear-firstと year-lastフォーマットの両方をサポートするためにVOSの能力を復元します。

01 02,03 January 2, 2003 (US English)
01 02,03 February 1, 2003 (French)

このフォーマットも8キャラクタを必要とし、危険で混乱した XX.YY.ZZ, XX/YY/ZZ または、XX-YY-ZZ 形式のためのサブルーチンとなります。

RECOMMENDATIONS:

弊社では、テストは2001年を通した2031年内の多様日で実行され、ソフトウェアを正しく実行したことを確実にするためのy2kテスト計画をレビューされることを強く推奨します。

また、ソフトウェアは異なるVOS言語のもと、異なるdate/timeの変換ルールのもとで操作しなければならないことを強く推奨します。最後に、全てのソフトウェアがs$cv_to_int_date_timeに入力として4桁の年を完全に使用することを推奨します。これは、日時変換過程に曖昧や混乱がないことを保証します。

WORKAROUND:

ソフトウェアは常に、月、日はlanguages.tinの特定のdate/timeに一致した2桁年の順番でdate/timeストリングが組み立てられます。さもなければ、ソフトウェアをlanguages.tinと同じ順番で年、月、日を指定するように変更しなければなりません。または、ソフトウェアにより使われる同じ順番に指定するためにはlanguages.tinを変更しなければならなりません。リーディング(先頭)の2-digit年とトレーリング(後尾)の2桁年の両方を使い続けられるケースはありません。

最善の方法は4桁年を使うためにソフトウェアを変更することです。これにより、人かソフトウェアのどちらかに起こりうる曖昧がありません。

整数date/time値をキャラクタ形式へ変換するいくつかのサブルーチンは、カレントプロセス言語のdate_formatフィールドに依存しています。従って、languages.tinでdate_formatを変更する場合 s$cv_to_long_string_date_time,s$cv_to_std_date_time,s$cv_to_std_date_time_and_zone, s$cv_to_strings_date_time, s$std_date_time, s$std_date_time_and_zoneにより作成されたoutput formatも変更されます。

故に、注意深くテストすることなしにシステム構成を変更するべきではありません。
その他ご質問、ご不明な点、または万が一問題が発生した場合は、保守契約窓口にご連絡下さい。

iconページの先頭へ戻る

お問い合わせ 03-3234-5562 (代表電話受付時間 平日/9:00〜17:00) 各種お問い合わせ窓口は以下をご覧下さい。

お問い合わせ一覧

カスタマーサポート

カスタマーサポート

テクニカルサポート

カスタマーサービス

導入事例
関連情報
サポート サポートイメージ
安心して利用いただくためのサポートサービスを提供しております。
サポート詳細
リソース/ダウンロード リソース/ダウンロードイメージ
ストラタス製品に関する技術資料などをダウンロードいただけます。
リソース/ダウンロード詳細
FAQ FAQイメージ
弊社製品について皆様から寄せられるよくある質問・回答集です。
FAQ詳細
関連リンク
お見積り お見積りイメージ
ストラタス製品のお見積りをご希望の方はこちらから承ります。
お見積り詳細
お問合せ お問合せイメージ
製品やサービス、購入方法、その他のお問合せはこちらから承ります。
お問合せ詳細
資料ダウンロード 資料ダウンロードイメージ
ストラタス製品に関する技術資料などをダウンロードいただけます。
資料ダウンロード詳細
資料請求 資料請求イメージ
ストラタス製品に関する資料請求はこちらから承ります。
資料請求詳細