ワークシート内の日付と時刻WksCol-DateTime
ワークシート上のデータはテキストまたは数値のいずれかとして扱われます。ワークシート上で、左揃えで表示されるデータは、テキストとして認識されています。右揃えのデータは数値として認識されています。
これらの設定を理解しておくことは重要です。
- 日付時間データはワークシートでは左揃えで、テキストとして認識されます。
- 正しくフォーマットされた日付時間データはDouble(8) - 64-bit、倍制度数値の数値データとして内部的にソートされます。日付時間データに対する計算は、この内部ソートの順番、倍精度で行われます。
Originの日付・時間システム
Originの日付データはグレゴリオ暦に基づいており、1/1/0100から12/31/9999の範囲に対応しています。日付と時間を処理するOriginの内部システムでは、ユリウス通日を使用して、1月1日を-4712 (January 1, 4713 BCE)、グリニッジ標準12時を"time zero" (t0).としています。Originの時間計測システムは12時間オフセットによって異なります(Originのデフォルトシステム: 修正ユリウス通日をご覧ください。)。
Origin 2019では、異なる"time zero」ポイントの2つ日付・時間のシステムを利用できます。一つ目は、デフォルトシステムの12時間オフセットを使用しないtrue Julian Dateです。もう1つは、Origin 2018で使用していたシステムで、小数点以下秒など、正確性が必要なシステムです。詳細は、Originの日付と時間をご覧ください。
日付・時間データのフォーマット
日付・時間データを扱う事の出来るOriginの他の機能(例えばインポートフィルタ)を使うのでなければ、日付・時間データはインポートするときはテキストとして認識されます。これに対して、正しい日付・時間フォーマットを適用してワークシートにインポートするには、次のようになります。
- 列プロパティダイアログを開いて、(a) 日付・時間データ列のヘッダをダブルクリックします、(b) 列を選択、右クリックして、フォーマット: 列を選びます。
- 列プロパティダイアログでプロパティタブを開きます。オプションで、フォーマットを日付または時間に設定します。日付は時間の要素を、時間は日付 (IRIG)、時間、分、秒そして小数点以下の秒数を設定します。さらに、時間形式は548日までの制限があります(たとえば、表示をHH:mmに設定された時間列に入力された 13151:00 は 13151:00 として表示されますが、13152:00 を入力すると 00:00 として表示されます)。
- 表示のドロップダウンリストをクリックして、データの適合するフォーマットを選択します。詳しくは、下記のOriginの日付と時間フォーマットの指示子をご覧ください。
- 既存のフォーマットがお使いのデータにそぐわない場合、リストの下の2つ、グローバルカスタム 1またはグローバルカスタム 2を選択します。
- 日付と時間フォーマットのグローバルカスタムでも、適したものが見つからない場合は、表示をカスタム表示に設定します。 適したカスタム日付・時間フォーマットを探します。または、Originの日付と時間フォーマット指示子を参考にカスタム表示ボックスにカスタム文字列を入力します。
その列で日時を表示するように事前設定しておき、キーボードを使用して日時データを直接入力することもできます。これを行うことにはいくつかの利点があります。例えば、フォーマット = 日付、表示 = 一番上の組み込みフォーマット(例: "10/2/2018")に設定してキーボードでの入力を始めると、Originは "10/02/2018"、 "Oct 2, 2018"、 "10-2-18" を正しく解析し、それらを選択されたフォーマットで表示します。多くの場合、データファイルをインポートして、左寄せ(テキスト)の日時データを特定の日時表示フォーマットの右寄せの数値データとして正しく表示したいと思うでしょう。
| 列プロパティダイアログでカスタム表示フォーマットを定義するとき、ASCIIインポート(impASC) ダイアログのカスタム日付フォーマットが適用されます。このテーマオプションを保存すると、新しくファイルをインポートするときに便利です。
|
日付・時間フォーマットと内部的な数値
一度、日付・時間の文字列を作成(ワークシート上で右揃えであれば数値として認識されています)すると、以降は簡単に表示フォーマットを切り替えることができます。日付・時間の値はDouble(8)の数値で保存されています。ワークシートに表示されるのは本来の数値です。表示フォーマットを9/19/2018 HH:mm:ssからWedに変換し、再び9/19/2018 HH:mm:ssに変換し直しても、本来のな数値は変更されません。
以下の画像では、ワークシートに、同じ(数値の)ユリウス通日の値を入力しています。それから、列プロパティの表示で、それぞれの列に異なるフォーマットを設定しています。
日付・時間データの欠損値について
日付・時間データに間隔がある場合、それらは欠損値(「--」)として表示される場合があります。LabTalkのシステム変数@JMの値を変更することにより、二重ダッシュを表示しないように選択できます。
@JM = 0; // 欠損値を二重ダッシュとして表示する(デフォルト設定)
@JM = 2; // 欠損値を空白として表示する
システム変数の値を変更する方法については、FAQ-708 システム変数を永続的に変更するにはを参照してください。
日付と時間のフォーマット指示子
日付と時間のフォーマット指示子の機能は、下の表の通りです。この備え付けのフォーマットを利用するか、表示のカスタムフォーマットで作成します。
意味...
|
以下の指示子を利用
|
Month
|
- M = 月を示す数字 (例えば、1月の1)。フォーマット要素が後続する時は、引用符(')で囲まれた区切り文字を挿入してください。
- MM = 月を示す2桁の数字(例えば、1月の01)。
- MMM = 日本語版:使用不可
- MMMM = 月の名前 (例えば、1月)。フォーマット要素が後続する時は、引用符(')で囲まれた区切り文字を挿入してください。
|
Day
|
- d = 日を示す数字 (例えば、1日の1)。フォーマット要素が後続する時は、引用符(')で囲まれた区切り文字を挿入してください。
- dd = 日を示す2桁の数字(例えば、1日の01)。
- ddd = 1文字の曜日(例えば、火曜日の火)。
- dddd = 長い曜日名(例えば、火曜日)。フォーマット要素が後続する時は、引用符(')で囲まれた区切り文字を挿入してください。
|
Weekday
|
- D = 曜日の数字1は月曜日を表し、7は日曜日を表します。
|
Year
|
- y = 先行ゼロを除いた西暦年の下2桁の数字 (例えば、1901 = 1)。フォーマット要素が後続する時は、引用符(')で囲まれた区切り文字を挿入してください。
- yy = 2桁の西暦年を示す数字 (例えば、1901 = 01)。
- yyyy = 西暦年(全桁)を示す数字 (例えば、1901)。
|
Quarter of Year
|
- q = 年の四半期の数字(例えば、 yyyy'Q'qの形式で2020年の4半期の三番目は2020Q3)。
|
Hour
|
- h = 先行ゼロを除いた12時間制の「時」(例えば、午前6時 = 午後6時 = 6)。フォーマット要素が後続する時は、引用符(')で囲まれた区切り文字を挿入してください。
- hh = 先行ゼロを含む12時間制の「時」(午前6時 = 午後6時 = 06)。
|
Hour
|
- H = 先行ゼロを除いた24時間制の「時」(例えば、午前6時 = 6、午後6時 = 18)。フォーマット要素が後続する時は、引用符(')で囲まれた区切り文字を挿入してください。
- HH = 先行ゼロを含む24時間制の「時」(例えば、午前6時 = 06、午後6時 = 18)。
|
Minute
|
- m = 先行ゼロを除いた「分」。フォーマット要素が後続する時は、引用符(')で囲まれた区切り文字を挿入してください。
- mm = 先行ゼロを含む「分」。
|
Seconds
|
- s = 先行ゼロを除いた「秒」。フォーマット要素が後続する時は、引用符(')で囲まれた区切り文字を挿入してください。
- ss = 先行ゼロを含む「秒」。
|
秒の小数部
|
- # = 1桁の秒の小数部
- ## = 2桁の秒の小数部
- ### = 3桁の秒の小数部
- #### = 4桁の秒の小数部
Note: デフォルトでは、日付・時間は(フォーマットは日付ですが、時間要素も含みます)は内部的にはユリウス通日(倍精度)で保存されます。整数部分が日付で、少数部分が秒を示します。このシステムでは、小数点以下4桁までに制限されており、これより小さい値は四捨五入されます。
Origin2019から、「Time Zero」が2018年1月1日00:00と定義されている2018 日付システムをサポートしています。この場合は、整数部分が小さいので、少数部分の桁数を大きくすることができます。 2018システムでは、10-8秒まで対応しています。
|
午前/午後
|
- t = 午前/午後を示す1文字。AかP。
- tt = 午前/午後を示す1文字。AMかPM。
|
日付・時間データのフォーマット
日付・時間フォーマットの定義とカスタム
- 環境設定:オプションで2つまでの日付・時間フォーマットを定義できます。定義した不カスタムフォーマットは列プロパティの表示の下に、(グローバルカスタム 1)と(グローバルカスタム 2)と表示されます。
- 列プロパティのプロパティタブで表示をカスタム表示に設定し、カスタム表示ボックスで定義を直接入力します。
- インポートウィザードのデータ列ページでカスタムフォーマットを定義します。
| 列プロパティやインポートウィザードで編集したフォーマットはプロジェクトに保存されます。これに対して、環境設定: オプションで定義された2つのグローバルカスタムフォーマットはOriginのインストールファイルに保存されます。
|
日付・時間フォーマットに関する注意
- 時間の文字列は、60文字までに制限されます。
- また、ピクチャ文字列が日付部分と時刻部分の両方を含む時、日付の中に時間のフォーマット要素を含んだり、時刻の中に日付のフォーマット要素を含んだりして、TIME-DATE-TIMEやDATE-TIME-DATEのいわばサンドイッチ形式とすることは禁止されています。
- '.'と',' は秒と小数点以下を分けるために用いられます。
- 日付フォーマットをカスタムすると、カスタム表示のドロップダウンリストの「トップに表示されます。カスタム日付・時間フォーマットはプロジェクトファイルに保存されます。プロジェクトファイルを共有せずに、このフォーマットを他の人が利用する場合、ユーザファイルフォルダ(ヘルプ: フォルダを開く: ユーザファイルフォルダ)を開いて、Origin.iniファイルを探します。ファイルをテキストエディタで開き、Column Custom Format Listセクションを探します。その部分をコピーして、共有相手に送ります。受け取る方は、ユーザファイルフォルダのOrigin.iniを開き、Column Custom Format Listのセクションに貼り付けて上書き保存します。
カスタム日時のサンプル
ワークシートの日時データの構造がOriginの組み込みまたは利用可能なカスタムフォーマットオプションの1つと一致しない場合は、独自のカスタムフォーマットを定義する必要があります。日付と時間のフォーマットで説明したように、Originの日付と時刻のフォーマット指定子を使って次のことができます:
- 環境設定:オプションでカスタム日時フォーマットを定義します。
- (ASCII) インポートウィザードのデータ列ページでカスタム日時フォーマットを直接入力します。「インポートフィルタ」として保存すると、そのカスタム日時フォーマットを他のファイルにも適用できます。
- 列プロパティダイアログボックスのカスタム表示ボックスに直接カスタム日時フォーマットを入力します。ここで入力した定義はOrigin.iniファイルに保存され、Origin.iniの[Column Custom Format List]を編集して削除しない限り、カスタム表示リストに永久的に保存されます。
フォーマットに表示するカスタム日時フォーマットを設定してみましょう。
1998年9月5日土曜日
.....この場合、完全な曜日名 (dddd)、 完全な月名 (MMMM)、月の日付(d)、そして完全な年 (yyyy)の指定子が必要です。
したがって、次のように入力します。
dddd, MMMM d, yyyy
Note: yyyy-MM-dd'T'Hh:mm:ss のように、予約文字を使い、変換したくない場合は、一重引用符で囲みます。
|
IRIGタイムコード
IRIG (Inter-Range Instrumentation Group)時間形式は、政府や商用で使われています。IRIG時間形式の一般的な形式は IRIG-Bで、これは年の日数(0 - 365/366)、時間、分、秒、秒以下の小数を1秒の更新レート1000 Hzのキャリアで送付します。
OriginではドラッグアンドドロップでASCIIインポート(データ:ファイルからインポート:ASCII)またはインポートウィザード (ファイル: ファイルからインポート: インポートウィザード)からIRIGタイムコードを取り込むことができます。IRIGタイムコードを含むファイルは数値データとしてインポートすることで、テキストデータから変換する手間を省きます。インポートしたら、列プロパティの表示ドロップダウンリストで適当なフォーマットに変換します。フォーマットに時間が選択されている時、以下の表示フォーマットが利用できます。
以下の表示オプションが利用できます。
- DDD:HH - 24時間表記
- DDD:HH:mm - 分表記
- DDD:HH:mm:ss - 秒表記
- DDD:HH:mm:ss.##- 小数点以下2桁秒の表記
- DDD:HH:mm:ss:###### - 小数点以下6桁秒表記
OriginではIRIGタイムコードにカスタム表示を適用することもできます。さらに、IRIGタイムコードは上記の表記方法であれば、どのフォーマットでも表示できます。
|