IBM Support

Windows 10 Version 1809 を適用後、Notes データベースで表示される日付形式が mm/dd/yy に変わった

Troubleshooting


Problem

Notes クライアントがインストールされている Windows 10 に Windows 10 Version 1809 を適用したところ、Notes データベースで表示している日付の形式が mm/dd/yy に変わってしまいました。

Cause

この問題は、問題報告番号 ASHHB9B2MA として IBM Quality Engineering に報告されましたが、開発部門の調査の結果、Notes クライアントの問題ではなく Windows 10 Update 1809 の問題と判断されました。
Windows 10 Update 1809 の適用によって Windows API の動作が変わったことによりこの問題が発生します。
修正については、マイクロソフト社側の対応をお待ちください。
今後の Windows 10 の更新情報については、"Related Information" に記載の Microsoft 社の情報を参照してください。

Resolving The Problem

Notes で日付表示が mm/dd/yy 形式になる問題のトリガーは Windows 10 1809 環境で他社製のアプリケーションが起動のタイミングで日付フォーマットを制御するためのレジストリを複数消してしまうことにあります。

この問題を回避するには次の二通りの方法があります。いずれかの方法で対応してください。

1. Notes クライアントで日付の形式を設定する

Notes 10.0 以降の場合、以下の notes.ini パラメータ設定により OS から日付形式を取得せずに日付の形式を yy/mm/dd に設定することが可能です。
NotesDateFormat=2

ただし、このパラメータ設定を行っても LotusScript 関数で日付を取得する場合には反映されません。この問題については、問題報告番号 ANIABA72QR として IBM Quality Engineering に報告され、IBM Notes 10.0.1FP2 で修正されました。

Notes 9.0.1 に対しては、最新の FP と IF をベースに当該 Notes.ini パラメーターを使用可能にする修正を追加した Hotfix の提供が可能です。修正を有効にするには、この Hotfix を適用した上で NotesDateFormat=2 の追加が必須になります。有効なソフトウェア・サブスクリプション&サポートをお持ちの場合には Hotfix の提供が可能ですので、IBM テクニカルサポートまでお問い合わせください。

2. OS のグループポリシー設定により日付の形式が変更されてしまうことを防ぐ

Windows 10 の新しいグループポリシー「ユーザー オーバーライドによるロケール設定を禁止する」を有効にすることで、Windows 10 1809 において日付フォーマットが変わってしまう問題の発生を防ぐことが可能です。
レジストリおよびグループポリシーの詳細な設定方法や設定時の影響については Microsoft 社にお問い合わせください。

Windows 10 の新しいポリシー
https://docs.microsoft.com/ja-jp/windows/client-management/new-policies-for-windows-10

ただし、このグループポリシーにより既に削除されてしまったレジストリキーを復旧させることはできません。
削除されることで Notes の動作に影響があることが確認されているレジストリキーはレジストリエディタ(regedit)を使用して手動で復旧させる必要があります。
<Notes が影響を受けることが確認されているレジストリの復旧手順>
注意: 以下の情報は関連する Windows のレジストリキーの変更について述べたものです。レジストリは Windows の機能の中核を占めるものであるため、いかなる変更を行う際にも細心の注意を払って実施し、不慮のシステム障害やシステムファイルの破損等が起こっても復旧することができるように、お客様のコンピュータシステムの完全なバックアップを取得した上で実施するようにして下さい。レジストリのバックアップについては、以下の Microsoft 社のサポート技術文書を参照してください。
(1) Microsoft Windows レジストリエディタ (regedit) を起動します。
(2) HKEY_CURRENT_USER\Control Panel\International を参照します。
(3) 「新規-文字列値」を選択して文字列キーを追加します。
(4) 追加したキーを選択し、次の文字列値を入力します。
iDate
(5) iDate をダブルクリックし、「値のデータ」に次の値を設定します。半角の数字を入力してください。
2
(6) 同じく HKEY_CURRENT_USER\Control Panel\International に、「新規-文字列値」を選択し、もうひとつ別の文字列キーを追加します。
(7) 追加したキーを選択し、次の文字列値を入力します。
sShortDate
(8) sShortDate をダブルクリックし、「値のデータ」に次の値を設定します。大文字小文字を正確に入力してください。
yyyy/MM/dd
(9) レジストリエディタを終了します。
(10) OS を再起動します。

Internal Use Only

--- 2018/12/20 csato ---

タイトルや本文に記載の「WindowsのVer.」という表記が正しいのか不明でしたので、Microsoftの以下のページを参考に表記を変更しました。

https://support.microsoft.com/ja-jp/help/4464619/windows-10-update-history

以下は、ちょっと公開しにくいので、省きました。なんでHCL開発からMicrosoftへ報告しないんだとつっこまれそうかなと。

Original

Notes クライアントは OS から日付形式を取得するため、この現象は OS の問題となり、残念ながら Notes クライアントでの対応方法はありません。
値を作成することで一時的に現象が解消される場合もありますが、その後も現象が再発する場合もあります。
従って、元の日付形式に戻したい場合は、Windows 10 を Ver. 1809  より前の Ver. に戻してください。

また、以下の点については、Microsoft 社へお問い合わせください。
・Ver. 1809 へアップデート後、上記の値(iDate)が削除される原因、及び Windows の今後の修正予定等について
・Ver. 1809 にアップデートしても、上記の値(iDate)が削除されない場合もあり、削除されない条件の違いや原因について

--- 2019/02/12 TKageyama ---
新名さん作成の SPR 番号を追記しました。

--- 2019/02/15 csato ---
新名さんの再現環境での回避策を更新しました。(新名さんのところではレジストリ変更では回避できませんでした)

--- 2019/02/27 TKageyama ---
修正が出たそうなので、全面的に書き換えました。

--- 2019/03/12 ANishioka ---

修正モジュール適用後も一部修正されていない箇所が発見されたので、その内容を記載しました。該当箇所は LotusScript の Date 関数、Today 関数、Now 関数で返される日付部分です。日付形式のビューの列式や @Now、@Today、@Date 関数、フィールド式に関しては消去されるレジストリ(HKEY_CURRENT_USER\Control Panel\International\iDate と HKEY_CURRENT_USER\Control Panel\International\sShortDate) が存在していなくても Hotfix の適用と notes.ini パラメーターの設定で回避されることを確認していますが、LotusScript の Date 関数、Today 関数、Now 関数はレジストリがない場合には m/DD/YYYY 形式の値を返します。LotusScript のみ取得方法が異なると考えられるため、この点を調査中です。

--- 2019/03/13 csato ---

ICAA の IF で修正されたので、追加しました。

Microsoft Site にて、グループポリシーを変更する回避策を見つけた方がいました。

https://answers.microsoft.com/ja-jp/msoffice/forum/all/windows-10-ver1809-%E3%81%AB%E3%81%A6/9fe30a76-b099-4383-b4c1-4ebb1190af84

--- 2019/04/01 mnishida ---

日付フォーマットが変わってしまう問題は Windows API 動作変更に起因するため、Notes ではなくWindows の問題と判断されました。
日付フォーマット設定値の取得方法については、レジストリに直接アクセスして値を取得しているのではなくWindows API: GetProfileIntA という関数で取得しています。
https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getprofileinta
Windows 10 Update 1809 環境で正常時にGetProfileIntA を呼ぶと2 が返りYMD フォーマットになります。
Outlook を起動するとレジストリの日付フォーマット関連の下記の設定が削除されます。その後GetProfileIntA を呼ぶと5 が返りMDY フォーマットになります。
- HKEY_CURRENT_USER\Control Panel\International\iDate
- HKEY_CURRENT_USER\Control Panel\International\sShortDate

-- 2019/04/11 anishiok ---
内容を見直して修正しました。
影響を受けることを確認した(NotesDateFormat=2 の制御を受けない) LotusScript 関数:Now, Today, Date, DateValue, DateNumber, FileDateTime, CDat, Format 関数で "General Date" "Short Date" を指定した場合
2019/04/11まで公開していた内容は以下
==============================

Cause

Windows 10 Update 1809 の適用によって、この問題が発生します。

今後の Windows 10 の更新情報については、以下の Microsoft 社の情報を参照してください。
この問題は、問題報告番号:ASHHB9B2MA として IBM Quality Engineering に報告されましたが、調査の結果、Notes クライアントの問題ではなく Windows 10 Update 1809 の問題と判断されました。

Resolving The Problem

この問題は、Notes 10.0 および ICAA 1.0.1.2 Interim Fix 4 での 問題報告番号: LWCS7WJPHD の修正により追加されたNOTES.INI パラメータを設定することで回避できます。日時の形式を、オペレーティング・システムから取得するのではなく、ユーザーが指定した形式へ変更できます。
Notes 10.0 へアップグレードした後、修正を反映させるためには、Notes クライアントの notes.ini に以下のパラメータを追加してください。

NotesDateFormat=2

設定の反映には、Notes クライアントの再起動が必要です。
この問題が発生し、有効なソフトウェア・サブスクリプション&サポートをお持ちの場合には、IBM テクニカルサポートまでお問い合わせ下さい。
最新のメンテナンスリリースをご利用の場合には、修正リリースが入手可能になるまでの間、 IBM Notes/Domino 障害修正プログラム提供のポリシーに基づき、この問題に対する Hotfix を提供することができます。
ただし、当 Hotfix を適用後もLotusScript では m/dd/yyyy 形式で日付を返す処理が存在することが確認されました。
この事象については問題報告番号 ANIABA72QR で IBM Quality Engineering に報告されており、現在も調査中です。

==============================
-- 2019/04/15 anishiok ---

・対応策を2点両方の実施が必要かどうかに関しての説明:
「2. OS のグループポリシー」で対応するならば 「1. Notes クライアントで日付の形式を設定する」は必須ではありません。ただし、グループポリシーはレジストリが存在する環境で Outlook 起動の度にレジストリが消去されることを防ぐ対応であり、レジストリが既に消去された環境においては手動でレジストリを復帰させる必要があります。
一方、 「1. Notes クライアントで日付の形式を設定する」で対応する場合、Outlook 起動により iDate と sShortDate のレジストリが消去されているか否かにかかわらず、式言語やカレンダーコントロールより手動で入力した日付の値に関しては日本のデフォルトである yyyy/MM/dd 形式で日付が取得されます。しかしながら、iDate と sShortDate のレジストリが消去された環境においては LotusScript の日付取得関数が依然として mm/dd/yy 形式で日付を返すため、LotusScript の処理も含めて全てのケースを網羅した状態で日付表示の問題に対応するならば「2. OS のグループポリシー」の対応が必要になります。
・提供可能な Notes の Hotfix は Notes901FP10IF6 ベースのため、この問題のためにNotes のリリースを最新版にすることが不可能なお客様は「2. OS のグループポリシー」の対応を行われるのが最善と考えられます。
--- 2019/04/26 anishiok ---
Notes Standard/Basic では 901FP10SHF374 で LotusScript の日付取得問題が修正されました。
Hotfix 番号は改元対応の Hotfix より新しいですが、この修正モジュールには改元対応の修正が含まれていません。
改元対応 + NotesDateFormat パラメーターを使用可能にするための LWCS7WJPHD の修正 + LotusScript で日付取得処理を修正するための ANIABA72QR の修正がコンボになったモジュールが完成した時点で公開情報を更新予定です。
なお、ICAA は 1.0.1.2 IF5 には上記3点の修正が含まれています。

--- 2019/05/28 csato ---

ANIABA72QR が修正されていないと誤解されているせいで、Hotfixではなくてグループポリシー変更の検討がされている (TS002274623 など) 場合があることがわかったので、上記西岡さんのご意見もありますが、いま時点で更新を実施しようと思います。

「ただし、このパラメータ設定を行っても LotusScript 関数で日付を取得する場合には反映されません。この事象については現時点では制限事項となります。
LotusScript で日付を扱う Date、Today、Now 等を使用したアプリケーションやカスタマイズがある場合にはこの回避方法は利用できませんので、この設定は行わずに次の 2 の方法で対応してください。」

-- 2019/05/29 anishiok ---

・公開欄でお客様が誤解されやすい箇所について情報を捕捉しました。
iDate と sShortDate のレジストリが削除された環境においてNotes.ini パラメーター NotesDateFormat=2 を設定して 2019/05/29 のように年を4桁表示にするには日付/時刻フィールドのオプションで「21世紀を4桁で表示」「常に4桁で表示」のチェックが必須であることが判明しました。「21世紀を4桁で表示」「常に4桁で表示」が無効な場合には 19/05/29 のように年が2桁表示になります。

5/28までの公開内容:

この問題を回避するには次の二通りの方法があります。いずれかの方法で対応してください。

1. Notes クライアントで日付の形式を設定する

Notes 10.0 以降の場合、以下の notes.ini パラメータ設定により OS から日付形式を取得せずに日付の形式を yy/mm/dd に設定することが可能です。
NotesDateFormat=2

ただし、このパラメータ設定を行っても LotusScript 関数で日付を取得する場合には反映されません。この問題については、問題報告番号 ANIABA72QR として IBM Quality Engineering に報告され、IBM Notes 10.0.1FP2 での修正を予定しています。
Notes 9.0.1 に最新の FP と IF を適用した環境では Hotfix 適用によりこのパラメーターが使用可能になります。有効なソフトウェア・サブスクリプション&サポートをお持ちの場合には Hotfix の提供が可能ですので、IBM テクニカルサポートまでお問い合わせください。

2. OS のグループポリシー設定により日付の形式が変更されてしまうことを防ぐ

Windows 10 の新しいグループポリシー「ユーザー オーバーライドによるロケール設定を禁止する」を有効にすることで、Windows 10 1809 において日付フォーマットが変わってしまう問題の発生を防ぐことが可能です。
詳細な設定方法や設定時の影響については Microsoft 社にお問い合わせください。

Windows 10 の新しいポリシー
https://docs.microsoft.com/ja-jp/windows/client-management/new-policies-for-windows-10

-- 2019/08/08  anishiok --

次の文面を見直しました。

Notes 9.0.1 に最新の FP と IF を適用した環境では Hotfix 適用によりこのパラメーターが使用可能になります。有効なソフトウェア・サブスクリプション&サポートをお持ちの場合には Hotfix の提供が可能ですので、IBM テクニカルサポートまでお問い合わせください。

[{"Business Unit":{"code":"BU003","label":"Collaboration Solutions"},"Product":{"code":"SSKTWP","label":"IBM Notes"},"Component":"","Platform":[{"code":"PF033","label":"Windows"}],"Version":"9.0;10.0","Edition":""}]

Document Information

Modified date:
08 August 2019

UID

ibm10791747