CSVからJSONへの変換における日付カラムの処理
CSVファイルの日付値のパースと正規化方法。ISO 8601、US/EU日付形式、Excelシリアル日付、タイムゾーン処理を解説。
Data Types
詳細な説明
CSVからJSON変換における日付処理
日付はCSVにおいて最も問題のあるデータ型の一つです。標準フォーマットが存在しないため、同じ日付が01/02/2024、2024-01-02、Jan 2, 2024、45293(Excelシリアル日付)として表示される可能性があります。
CSVファイルの一般的な日付形式
| 形式 | 例 | 出典 |
|---|---|---|
| ISO 8601 | 2024-01-15 |
API、データベース |
| US形式 | 01/15/2024 |
USのスプレッドシート |
| ヨーロッパ形式 | 15/01/2024 |
ヨーロッパのスプレッドシート |
| Excelシリアル | 45306 |
Excelの数値形式 |
| Unixタイムスタンプ | 1705276800 |
データベース、ログ |
曖昧性の問題
日付01/02/2024の意味:
- USでは 2024年1月2日(MM/DD/YYYY)
- ヨーロッパでは 2024年2月1日(DD/MM/YYYY)
ソースのロケールを知らない限り、正しくパースすることは不可能です。
推奨されるJSON出力形式
日付をJSONに変換する際は、ISO 8601に標準化してください:
{
"createdAt": "2024-01-15",
"updatedAt": "2024-01-15T09:30:00Z"
}
ISO 8601は曖昧でなく、文字列としてソート可能で、JSONパーサーやデータベースに広く認識されています。
タイムゾーンの考慮事項
タイムゾーン情報のないCSVの日付は、通常データソースのローカルタイムゾーンにあると仮定されます。Webアプリケーション用にJSONに変換する場合、常にソースのタイムゾーンを特定し、UTCに変換し、明示的なタイムゾーンオフセットまたはZサフィックスで出力してください。
ユースケース
DD.MM.YYYY形式を使用するヨーロッパの会計システムからの過去の販売記録を、JSONでISO 8601日付を期待するグローバル分析プラットフォームに移行する場合に使用します。