# 日時書式（システム書式）

マニュアル > コントロールリファレンス > 日時書式 > # 日時書式（システム書式） |

システム書式について

本頁では、日時書式の「システム書式」に関する仕様について解説します。

日時書式のシステム書式とは、FA-Panelのシステム内部であらかじめ用意されている日時書式です。

システム書式として用意されているものは以下のとおりです。

（システム書式の種類）

種別 | 日時書式名 | 内容
デフォルト書式 | @DATETIME | あらかじめ用意されているデフォルト書式です（推奨）。本書式は内部的に@LOCALEの全プロパティを継承した書式設定となっており、ユーザー書式によるカスタマイズが行われない限り、@LOCALEと同等の動作となります。
ISO書式 | @ISO | 標準書式（@ISO）は、ロケールに影響されない世界共通の書式です。 書式としては、「%Y-%m-%d %H:%M:%S」と同等です。 例）2017-02-12 11:10:09
地域書式（自動切替） | @LOCALE | 本書式を指定すると、Localeルートプロパティ（もしくはLocaleDateTimeルートプロパティ）に設定されたロケール設定に従った動作となります。
地域書式（固定） | @ja、@en、@de など | 本書式は、Localeルートプロパティの設定に関わらず、各国固有の書式を直接指定したい場合に使用します。指定方法としては、「@」の後ろに、ja（日本） や de（ドイツ）のような、各国を示すロケールIDを用いて指定します。

尚、日時書式にシステム書式を用いて指定する場合、「@DATETIME」などの日時書式名の末尾に任意のオプションを付与して指定することができます。

オプションを付与することでより細かな動作を定義することが可能となります。

例）OSの言語設定が日本語かつ、rootのLocaleプロパティが"DEFAULT"の場合

@DATETIME ・・・ 2017/02/18 12:57:20

@DATETIME.D ・・・ 2017/02/18

@DATETIME.D.%HM ・・・ 2017/02/18 12:57

オプションに関する詳細は「日時書式のオプションとプロパティ」を参照してください。

デフォルト書式（@DATETIME）

書式 : @DATETIME[.オプション書式]<プロパティ書式>

デフォルト書式「@DATETIME」は、内部的に@LOCALEの仕様を継承した書式設定となっており、ユーザー書式の定義によるカスタマイズ（DateTimeFormatConfルートプロパティによる上書き）が行われない限り、@LOCALEと同等の動作となります。

日時書式の指定例 | 表示例
@DATETIME | 2017/02/18 13:55:42
@DATETIME.D | 2017/02/18
@DATETIME.T | 13:55:42
@DATETIME.%ymdHM | 17/02/18 13:55
@DATETIME.%mdHMSt | 02/18 13:55:42.125
@DATETIME.%HM | 13:55
@DATETIME.D.%HM | 2017/02/18 13:55
@DATETIME.T.D | 13:55:42　2017/02/18
@DATETIME.DT.MS | 2017/02/18 13:55:42.125
@DATETIME.DT.UTC | 2017/02/18 13:55:42 +0900

※上記の表示例は、OSの言語設定が日本語かつ、rootのLocaleプロパティが"DEFAULT"の場合の例です。

※上記の指定例は一例です。他のオプションを指定することで、様々な書式に対応できます。オプションに関する詳細は「日時書式のオプションとプロパティ」を参照してください。

| @DATETIMEと@LOCALEは初期の状態としては全く同じように動作しますが、ユーザーカスタマイズを想定して、あえて別々の書式として用意されています。例えば、@DATETIMEは部品ライブラリや画面ライブラリからも共通的に利用されており、日時の表示を全体で一括で変更したい場合にはDateTimeFormatConfルートプロパティの定義で@DATETIMEの振る舞いをカスタマイズすることにより、全体の動作をまとめて変更できるようにするためです。拡張性の観点からも、何か特別な理由がない限り、ユーザー側で使用する日時書式の指定には@DATETIMEの使用を推奨します。 DateTimeFormatConfによる@DATETIMEのカスタマイズの詳細については「日時書式（ユーザー書式）」を参照してください。

| Panel Editorで表示されるバインドダイアログから、日時書式の定義が実際にどのように動作するのかを簡易的に知ることができます。 以下は、書式に「@DATETIME.DT.%g<TZ=New Zealand Standard Time;DST=smr>」と設定した例です。 ※簡易的なテストのため、一部のオプションについてはテスト結果が表示されない場合があります。

| 書式を指定する際に複数のプロパティを指定する方法として、<プロパティ1=設定値;プロパティ2=設定値;プロパティ3=設定値>のようにプロパティ単位でセミコロンで区切る方法の他に、<プロパティ1=設定値><プロパティ2=設定値><プロパティ3=設定値>・・・のように、<>の組を列挙して指定することもできます。 尚、<>の組を列挙する場合、<>と<>の間には文字を入れないようにしてください（スペースも不可）。 例）@DATETIME.%YmdHMSps<AM=am.><PM=pm.><DTSep=^><TZ=US Eastern Standard Time> ※上記は、以下と同意となります。 @DATETIME.%YmdHMSps<AM=am.;PM=pm.;DTSep=^;TZ=US Eastern Standard Time>

ISO書式（@ISO）

書式 : @ISO[.オプション書式]<プロパティ書式>

標準書式（@ISO）は、ロケールに影響されない世界共通の書式です。

表示内容は、「%Y-%m-%d %H:%M:%S」と同等です。

日時書式の指定例 | 表示例
@ISO | 2017-02-18 13:55:42
@ISO.D | 2017-02-18
@ISO.D.%HM | 2017-02-18 13:55

※上記の表示例は、OSの言語設定やrootのLocaleプロパティ（もしくはLocaleDateTimeプロパティ）の設定に関係なく、同様に表示されます。

※@ISOについてもオプションを指定することができます。オプションに関する詳細は「日時書式のオプションとプロパティ」を参照してください。

地域書式（自動切替）（@LOCALE）

書式 : @LOCALE[.オプション書式]<プロパティ書式>

地域書式（自動切替）は、Localeルートプロパティ（もしくはLocaleDateTimeルートプロパティ）に設定されたロケール設定に従った動作となります。

例えば、Localeルートプロパティ（もしくはLocaleDateTimeルートプロパティ）に「DEFAULT」を設定した場合、OSの設定に従った表示となります。

あるいは、Localeルートプロパティ（もしくはLocaleDateTimeルートプロパティ）に「en」を設定した場合、OSの設定に関係なく「en」（英語）での表示となります。

日時書式の指定例 | 表示例
@LOCALE | 2017/02/18 13:55:42
@LOCALE.D | 2017/02/18
@LOCALE.D.%HM | 2017/02/18 13:55

※上記の表示例は、OSの言語設定が日本語かつ、rootのLocaleプロパティが"DEFAULT"の場合の例です。

※@LOCALEについてもオプションを指定することができます。オプションに関する詳細は「日時書式のオプションとプロパティ」を参照してください。

地域書式（固定）（@ja、@en など）

書式 : @[ロケールID][.オプション書式]<プロパティ書式>

地域書式（固定）は、ja（日本）、en（英語）、de（ドイツ）、のような、各国の地域を表す「ロケールID」を用いてロケールを直接指定します。

Localeルートプロパティ（もしくはLocaleDateTimeルートプロパティ）の設定やOSの設定とも関係なく、指定したロケールIDの地域の仕様で表示されます。

日時書式の指定例 | 表示例
@ja | 2017/02/18 13:55:42
@ja.D | 2017/02/18
@ja.D.%HM | 2017/02/18 13:55
@en | 02/18/2017 13:55:42
@en.DT.MS | 02/18/2017 13:55:42.123
@de | 18.02.2017 13:55:42

※上記で指定可能なロケールIDに関する詳細は、「ロケールIDについて」を参照してください。

※地域書式（固定）についてもオプションを指定することができます。オプションに関する詳細は「日時書式のオプションとプロパティ」を参照してください。

| 地域書式（固定）（@ja、@en など）による指定が効果的な場面としては、例えば、１つのフォーム上に複数の時計部品を張り付け、それぞれ異なる国のロケール設定の時刻表記を並べて表示したい場合などが挙げられます（さらに、各時計部品に個別のタイムゾーンを指定することで、世界時計のような画面を作成することもできます）。