0

システムのデフォルトの Windows 7 時刻形式を変更する方法を探しています。したがって、システムがデフォルトの時刻表記として 10PM や 10 AM などを使用している場合、そのシステムを 10:00 または 22:00 に変更するのが好きです。

私は GUI を介してそれを行う方法を知っていますが、私の場合、ソフトウェア (C#) は、時間表記が問題ないかどうか、および C#、レジストリ編集、vbscript、コマンドライン、Powershell、またはいくつかの使用によって変更されていないかどうかを確認する必要があります。特定の .exe ファイル 私たちが作成したソフトウェアは、すでに外部プログラム/言語 (vbscript/powershell) を使用しています。しかし、問題はこれまでのところ、リモート画面を引き継ぐ以外にこれを行う方法が見つかりませんでした.

おそらく誰かがこれを行う方法を知っていますか? タイムゾーン、日付表記についても同様です。

4

4 に答える 4

0

.NET でこれを行うには、次のようなコードを使用します。

CultureInfo newCultureInfo = (CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
newCultureInfo.DateTimeFormat.ShortDatePattern = shortDateFormat;
newCultureInfo.DateTimeFormat.LongTimePattern = longTimeFormat;
Thread.CurrentThread.CurrentCulture = newCultureInfo;
于 2016-09-22T17:07:15.840 に答える
0

「Control Panel\International」レジストリ キーを使用したソリューションについて (申し訳ありませんが、評価が 50 でないためコメントできません):

これは既存のプロセスには影響しないようで、レジストリの変更後に作成された新しいプロセスにのみ影響します。そして明らかに、レジストリ値 (つまり実装の詳細) を仮定するコードは、Windows の将来のバージョンで壊れる可能性があります。

また、コードは RegistryKey オブジェクトを破棄する必要があります。using ブロックを使用して記述したほうがよいでしょう。

これを行う必要があるかどうかについては、アプリが時刻の日付形式を変更することはほとんどありませんが(システム情報を設定する方法が改善されたアプリである可能性があります)、自動テストでこれを行う必要があるのは非常に合理的です。 . コードがデフォルトの時刻/日付形式に依存することはよくあるバグであるため、それらをデフォルト以外の値に設定するか、さまざまな時刻/日付形式でコードをテストすることをお勧めします。

于 2016-09-21T19:28:28.053 に答える