1

サービスとしても実行できるdelphiアプリケーションがあります。Windows 7マシンでアプリケーションをサービスとして実行しているときに、shortdate形式に問題があります。Delphi /Win7は間違ったshortdate形式を返します。選択したロケールに関係なく、常に「DD-MM-YYYY」形式を返します。これは、サービスとして実行し、Win7で実行した場合にのみ発生します。アプリケーションがサービスとして実行されていない場合、問題はありません。フォーマットを2回変更して保存するという回避策を試しましたが、無駄でした。ここで何か助けはありますか?

4

3 に答える 3

2

サービスは、それが実行されているユーザーアカウントのロケール設定を取得します。私の推測では、あなたはLOCALSYSTEMとしてサービスを実行しています。インタラクティブユーザーとして実行するようにサービスを構成すると、必要なロケール設定が得られます。

于 2012-04-07T10:27:37.487 に答える
0

サービスに何らかの日付形式が必要な場合は、サービスの作成イベントで ShortDateFormat グローバル変数を使用して形式を設定します。Windows 7 をインストールするときに、国と既定のシステム形式を選択しました。インストール後、ユーザー形式は変更できますが、システム形式は変更できません。たぶん、レジストリのハッキングがあればできます。

于 2012-04-07T16:55:59.767 に答える
0

データ処理のためにユーザー ロケールに依存しないでください。

固定フォーマットを使用してデータを処理する必要がある場合は、 の明示的なインスタンスを作成し 、2 番目のパラメータとしてTFormatSettingsを受け取る SysUtils プロシージャ/関数を使用します。TFormatSettings

表示目的では、ユーザーはアプリケーションがコントロール パネルからロケール設定を使用することを期待します。

于 2013-02-01T17:20:49.817 に答える