Microsoft VM には、各種のバージョンがあります。更新バージョンは、比較的頻繁にリリースされています。この Web ページでは、Microsoft VM の各種バージョンの 2000 年問題対応状況と、確認されている 2000 年問題に対する推奨事項について説明します。
使用している Microsoft VM のバージョンの確認方法
まず、実行している Microsoft VM のバージョンを確認します。
- MSDOS プロンプトで、「JVIEW」と入力します。バージョン番号が表示されます。
または
- msjava.dll (Windows 98 では \System ディレクトリ、Windows NT では \system32 ディレクトリ) を右クリックして、[プロパティ] をクリックします。バージョン番号が表示されます。
次は、リリースされている Microsoft Virtual Machine (VM) のバージョンの一覧です。各 VM で認識されている 2000 年問題と、その問題を修正するアップグレード プログラムのアドレスも示します。
VM のバージョン |
Microsoft VM が含まれる主な製品 |
配布日 |
対応状況 |
|
次の Microsoft VM の日付に関する問題と推奨事項については、セクション 1 を参照してください。 |
1158 |
Internet Explorer 3.0 |
1996 年 8 月 |
未対応 |
1213 |
Visual J++® 1.0 |
1996 年 11 月 |
未対応 |
1211 |
Internet Explorer 3.01 |
1996 年 10 月 |
未対応 |
1257 |
VM Update |
|
未対応 |
1515 |
Visual J++ 1.1 |
1997 年 5 月 |
未対応 |
1515 |
SDK for Java 1.5 |
1997 年 2 月 |
未対応 |
1515 |
Internet Explorer 3.02 |
1997 年 3 月 |
未対応 |
1517 |
VM Update |
1997 年 4 月 |
未対応 |
1518 |
SDK for Java 1.5.1 |
1997 年 5 月 |
未対応 |
1520 |
VM Update |
98 年 9 月 15 日 |
対応 |
|
次の Microsoft VM の日付に関する問題と推奨事項については、セクション 2 を参照してください。 |
2057 |
SDK For Java 2.0 Beta 1 |
1997 年 4 月 2 日 |
未対応 |
2174 |
Internet Explorer 4.0 Beta 2 |
1997 年 7 月 23 日 |
未対応 |
2175 |
SDK For Java 2.0 Beta 2 |
1997 年 7 月 23 日 |
未対応 |
2252 |
Internet Explorer 4.0 |
1997 年 10 月 1 日 |
未対応 |
2252 |
SDK For Java 2.0 |
1997 年 10 月 1 日 |
未対応 |
2334 |
VM Update |
1997 年 10 月 29 日 |
未対応 |
2339 |
Internet Explorer 4.01 |
1997 年 12 月 4 日 |
未対応 |
2339 |
SDK For Java 2.01 |
1997 年 11 月 30 日 |
未対応 |
2406 * |
Windows 98 |
1998 月 7 月 25 日 |
未対応 |
2424 |
Internet Explorer 4.01SP1 |
1998 年 5 月 22 日 |
未対応 |
2424 |
WindowsÒ 98 |
1998 年 5 月 20 日 |
未対応 |
2435 |
Internet Explorer 4.01SP1 |
1998 年 12 月 21 日 |
未対応 |
2435 |
WindowsÒ 98 Y2K Update |
1998 年 12 月 11 日 |
未対応 |
2436 |
VM Update |
1999 年 1 月 |
対応 |
2613 |
Visual J++ 6.0 Tech Preview 1 |
1998 年 3 月 11 日 |
未対応 |
2613 |
SDK For Java 3.0 Preview |
1998 年 3 月 11 日 |
未対応 |
|
次の Microsoft VM の日付に関する問題と推奨事項については、セクション 3 を参照してください。 |
2750 |
SDK for Java 3.0 Preview |
1998 年 6 月 12 日 |
未対応 |
2750 |
Internet Explorer 5.0 Beta 1 |
1998 年 5 月 28 日 |
未対応 |
2752 |
Visual Studio ® 6.0 |
1998 年 9 月 25 日 |
未対応 |
2829 |
SDK For Java 3.0 |
1998 月 7 月 17 日 |
未対応 |
2922 |
Visual J++ 6.0 |
1998 年 10 月 23 日 |
未対応 |
2924 |
SDK For Java 3.1 |
1998 年 9 月 2 日 |
未対応 |
2925 |
SDK For Java 3.1 Update |
1998 年 10 月 13 日 |
未対応 |
2925 |
Visual Studio 6.0 SP1 |
1998 年 10 月 13 日 |
未対応 |
3031 |
Internet Explorer 5.0 Beta 2 |
1998 年 11 月 19 日 |
未対応 |
3154 |
VM Update |
1998 年 12 月 7 日 |
未対応 |
3155 |
VM Update |
1998 年 12 月 8 日 |
未対応 |
3158 |
VM Update |
1998 年 12 月 22 日 |
未対応 |
3161 |
Visual Studio 6.0 SP2 |
1999 年 1 月 20 日 |
未対応 |
3165 |
VM Update |
1999 年 1 月 |
対応 |
* これは、JavaVM 2424 と同じです。 "2406" と表示されるのは、コマンド プロンプトで「Jview」と入力した場合です。
セクション 1
Microsoft VM のバージョン: 1158 ~ 1518 は "未対応" です。
日付処理での問題
VM Version 1158 ~ 1518 では、日付の値は "基準日" (1970 年 1 月 1 日 00:00:00 UTC) 以降のミリ秒として、VM で内部的に保持されます。これらのバージョンは Java 1.02 に基づいており、対応期間は 1970 ~ 2037 年です。 この期間外の日付は、対応期間外として返されます。
java.util.date クラスは、日付の操作と保存を行う Java 1.02 の組み込みクラスです。このクラスは、日付の操作、保存、変換を行うメソッドを提供します。
下 2 桁の西暦の処理
VM 1158 ~ 1518 では、1900 に特定の値を加算して、下 2 桁の西暦を 4 桁の西暦に変換します。
日付の処理
VM 1158 ~ 1518 には、100 年日付スライド ウィンドウはインプリメントされていません。このため、下 2 桁の西暦が変換される範囲が 1970 ~1999 に限定されます。日付スライド ウィンドウは、VM 1520 にインプリメントされています。
例: 02 年 4 月 12 日の解析を試みると、java.lang.illegalArgumentException が返されます。
推奨事項
VM Version 1520 にアップグレードします。このプログラムは、
http://www.microsoft.com/java/download.htm
からダウンロードできます。
Microsoft VM のバージョン: 1520 は "対応" しています。
1520 で認識されている問題
VM 1520 では、1158 ~ 1518 と同じように日付が処理されます。ただし、下 2 桁の西暦の形式が異なります。1520 では、"80/20" 100 年日付スライド ウィンドウを使用して、西暦の上 2 桁が決定されます。つまり、20 年より先と 80 年より前には、現在の西暦の上 2 桁が適用されます。
例 1: 1998 年に「1/6/17」と入力されると、2017 年 1 月 6 日に変換されます。
例 2: 1998 年に「2/16/73」と入力されると、1973 年 2 月 3 日に変換されます。
セクション 2
Microsoft VM のバージョン: 2057 ~ 2339 は "未対応" です。
日付の処理
VM Version 2057 ~ 2339 では、日付の値は "基準日" (1970 年 1 月 1 日 00:00:00 UTC) 以降のミリ秒として、VM で内部的に保持されます。4 桁の西暦の対応期間には、上限はありません。
これらのバージョンの VM では、Java 1.02 の java.util.date クラスと、Java 1.1 の java.util.calendar とその関連クラスを使用して日付の処理と保存が行われます。
下 2 桁の西暦の処理
VM 2057 ~ 2339 では、 1900 に特定の値を加算して、下 2 桁の西暦を 4 桁の西暦に変換します。
日付処理での問題
問題 1: これらの VM には、スライド ウィンドウはインプリメントされていません。下 2 桁の西暦と java.text.SimpleDateFormat パーサーを使用した場合、対応期間は 1900 ~1999 年になります。
例 1: Java 1.02 の java.util.date クラスを使用して 02 年 4 月 12 日の解析を試みると、java.lang.illegalArgumentException が返されます。
例 2: Java 1.1 の java.text.SimpleDateFormat クラスを使用して 02 年 4 月 12 日の解析を試みると、1902 年 4 月 12 日が返されます。
問題 2: これらの VM で提供される java.text.SimpleDateFormat パーサーは、Java 1.1 の日付クラスで上 2 桁を使用して、4 桁の西暦を解析します。
例 1: 「2/3/1678」と入力されると、1916 年 2 月 3 日に変換されます。パーサーは 16 だけを解析し、それを 1900 に加算して、4 桁の西暦に変換します。
例 2: 「5/12/2020」と入力されると、1920 年 5 月 12 日に変換されます。パーサーは 20 だけを解析し、それを 1900 に加算して、4 桁の西暦に変換します。
問題 3: これらの VM で提供される java.text.SimpleDateFormat パーサーは、00 年 2 月 29 日を認識しません。この日付に対しては、java.lang.IllegalArgumentException が返されます。
推奨事項
VM Version 2436 または 3165 にアップグレードします。これらのプログラムは、
http://www.microsoft.com/java/download.htm
からダウンロードできます。
Microsoft VM のバージョン: 2424 は "未対応" です。
日付の処理
この VM では、日付の値は "基準日" (1970 年 1 月 1 日 00:00:00 UTC) 以降のミリ秒として、VM で内部的に保持されます。対応期間に上限はありません。
この VM では、Java 1.02 の java.util.date クラスと、Java 1.1 の java.util.calendar とその関連クラスを使用して日付の処理と保存が行われます。
下 2 桁の西暦の処理
この VM では、"80/20" 100 年日付スライド ウィンドウが使用されて、西暦の上 2 桁が決定されます。つまり、20 年より先と 80 年より前には、現在の西暦の上 2 桁が適用されます。
例 1: 1998 年に「1/6/17」と入力されると、2017 年 1 月 6 日に変換されます。
例 2: 1998 年に「2/16/73」と入力されると、1973 年 2 月 3 日に変換されます。
日付処理での問題
問題 1: これらの VM で提供される java.text.SimpleDateFormat パーサーは、Java 1.1 の日付クラスで上 2 桁を使用して、4 桁の西暦を解析します。
例 1: 「2/3/1678」と入力されると、2016 年 2 月 3 日に変換されます。パーサーは 16 だけを解析し、それがスライド ウィンドウの上位部分になると判定します。そのため、この西暦を 21 世紀にマップします。
例 2: 「5/12/2020」と入力されると、1920 年 5 月 12 日に変換されます。 パーサーは 20 だけを解析し、それがスライド ウィンドウの下位部分になると判定します。そのため、この西暦を 20 世紀にマップします。
問題 2: これらの VM で提供される java.text.SimpleDateFormat パーサーは、00 年 2 月 29 日を認識しません。この日付に対しては、java.lang.IllegalArgumentException が返されます。
VM 2424 で認識されている問題
80/20 スライド ウィンドウは、Java 1.02 の java.util.date クラスと、Java 1.1 の java.text.SimpleDateFormat パーサーの両方にインプリメントされています。java.util.date クラスでは、4 桁の西暦の解析に関して、問題は認識されていません。
推奨事項
UVM Version 2436 または 3165 にアップグレードします。これらのプログラムは、
http://www.microsoft.com/java/download.htm
からダウンロードできます。
Microsoft VM のバージョン: 2435 は "未対応" です。
日付の処理
この VM では、日付の値は "基準日" (1970 年 1 月 1 日 00:00:00 UTC) 以降のミリ秒として、VM で内部的に保持されます。対応期間に上限はありません。
この VM では、Java 1.02 の java.util.date クラスと、Java 1.1 の java.util.calendar とその関連クラスを使用して日付の処理と保存が行われます。
下 2 桁の西暦の処理
この VM では、80/20 スライド ウィンドウを使用して、下 2 桁の西暦が変換されます。つまり、20 年より先と 80 年より前には、現在の西暦の上 2 桁が適用されます。
例 1: 1998 年に「1/6/17」と入力されると、2017 年 1 月 6 日に変換されます。
例 2: 1998 年に「2/16/73」と入力されると、1973 年 2 月 3 日に変換されます。
日付処理で認識されている問題
問題 1: これらの VM で提供される java.text.SimpleDateFormat パーサーは、00 年 2 月 29 日を認識しません。この日付に対しては、java.lang.IllegalArgumentException が返されます。
VM 2435 で認識されている問題
この VM では 2424 の問題が修正されています。また、4 桁の西暦に関して、java.text.SimpleDateFormat パーサーには問題は認識されていません。
推奨事項
VM Version 2436 または 3165 にアップグレードしてください。これらのプログラムは、
http://www.microsoft.com/java/download.htm
からダウンロードできます。
Microsoft VM のバージョン: 2436 は "対応" しています。
2436 で認識されている問題
この VM では 2424 と 2435 の問題が修正されています。また、00 年 2 月 29 日をパーサーが認識しないという問題も修正されています。
Microsoft VM のバージョン: 2613 は "未対応" です。
問題:
この VM には、日付処理に関して、VM 2057 ~ 2339 と同じ問題が認識されています。詳細については、前述のセクションを参照してください。
推奨事項
VM Version 3165 にアップグレードします。このプログラムは、
http://www.microsoft.com/java/download.htm
からダウンロードできます。
セクション 3
Microsoft VM のバージョン: 2750 ~ 3162 は "未対応" です。
日付の処理
VM Version 2750 ~ 3162 では、日付の値は "基準日" (1970 年 1 月 1 日 00:00:00 UTC) 以降のミリ秒として、VM で内部的に保持されます。 対応期間に上限はありません。
これらのバージョンの VM では、Java 1.02 の java.util.date クラスと、Java 1.1 の java.util.calendar とその関連クラスを使用して日付の処理と保存が行われます。
下 2 桁の西暦の処理
これらの VM では、"80/20" 100 年日付スライド ウィンドウが使用されて、西暦の上 2 桁が決定されます。つまり、20 年より先と 80 年より前には、現在の西暦の上 2 桁が適用されます。
例 1: 1998 年に「1/6/17」と入力されると、2017 年 1 月 6 日に変換されます。
例 2: 1998 年に「2/16/73」と入力されると、1973 年 2 月 3 日に変換されます。
日付処理での問題
問題 1: これらの VM で提供される java.text.SimpleDateFormat パーサーは、00 年 2 月 29 日を認識しません。この日付に対しては、java.lang.IllegalArgumentException が返されます。
推奨事項
VM Version 3165 にアップグレードします。このプログラムは、
http://www.microsoft.com/java/download.htm
からダウンロードできます。
Microsoft VM のバージョン: 3165 は "対応" しています。
日付の処理
VM Version 3165 では、日付の値は "基準日" (1970 年 1 月 1 日 00:00:00 UTC) 以降のミリ秒として、VM で内部的に保持されます。対応期間に上限はありません。
このバージョンの VM では、Java 1.02 の java.util.date クラスと、Java 1.1 の java.util.calendar とその関連クラスを使用して日付の処理と保存が行われます。
下 2 桁の西暦の処理
この VM では、80/20 スライド ウィンドウを使用して、西暦の上 2 桁が決定されます。つまり、20 年より先と 80 年より前には、現在の西暦の上 2 桁が適用されます。
例 1: 1998 年に「1/6/17」と入力されると、2017 年 1 月 6 日に変換されます。
例 2: 1998 年に「2/16/73」と入力されると、1973 年 2 月 3 日に変換されます。
3165 で認識されている問題
この VM では、 00 年 2 月 29 日をパーサーが認識しないという問題が修正されています。