The Nameless City

何故か製薬やSAS関連のブログ、の予定。

SAS以外での、日付・日時の取り扱いを少しまとめておく

その前に:ロケールと時刻の話。

当初は、NTPなんてものはなく、各PCの時刻がベース、UTCとか知らんがなというような状況ではあったのだが、


R言語

参考:
9 日付型データ | 疫学のための R ハンドブック
Rによるデータ解析のための前処理 - Appendix D — コラム: 日付・時間の書式
https://multivariate-statistics.com/2022/01/04/r-programming-date-time/
Rの日時データ #2 - 文字列⇔日時オブジェクトの変換



Baseパッケージにあるのは、DateクラスとDate-timeクラス(POSIXctクラスとPOSIXltクラスの総称)
両方とも、1970年1月1日、あるいは1970年1月1日0時0分をゼロとするPOSIXタイプらしい。ちなみにSASはここが1960年ベースなので注意。



chaos-kiyono.hatenablog.com
こんな事象があったらしい。ごめん、多分直らないのだが。


Timeのみのクラスはないようだ。

Python

参考:
Pythonで日付から曜日・月を数値・文字列で取得 | note.nkmk.me
PythonでISO 8601形式の文字列と日時datetimeを相互変換 | note.nkmk.me



標準であるdatetimeライブラリを導入して使用可能なのはdatetime/date/time。
ISO形式もある。

他言語での注意点

標準であるか、あるいは代替フォーマットがあるかというのもチェックした方がいい。
また、日付型と日時型が簡単な計算式では構成されていなかったりするのも注意。
未設定の場合、最小の想定で値が補完されるのが普通なので(日時は原則切り捨て処理、Nullを設定出来ないのが普通)、その辺りの差異注意。
また、タイムゾーンに関してケースバイケースで補完の仕方が違うので、その辺りも注意が必要。