TL;DR
- ExcelでCSVを開くと日付や日付/時間が自動変換されてData Loaderでエラーになる
- 両方とも
YYYY-MM-DDT00:00:00形式にすれば解決 - Data Loaderは時刻部分を自動で無視して日付のみ保存
- Excelでは文字列扱いになり自動変換されない
各ツールの問題詳細
1. MacのNumbersは非推奨
症状:
CSV Error: Invalid CSV file format.
Current delimiters are ',' '<tab>'
原因:
- Numbersで開くと日付形式は保持される ✅
- しかしCSV出力時に、データローダとの相性問題が発生
2. Excelの問題
症状:
Error: Failed to parse date: 2025/10/7 14:33
原因:
- Excelで開くと自動的に日付が変換される
-
2021-03-19→2021/3/19(月日が1桁に) -
2025-10-07 14:30→2025/10/7 14:30(月日が1桁に) - Data Loaderは厳密なフォーマットを要求するためエラー
3. Googleスプレッドシートの問題
症状:
- 大量データ(7万件以上)だとインポート時に重すぎて開けない
- または処理が遅すぎて実用的でない
一応の回避策:
ファイル → インポート →
「テキストを数値、日付、数式に変換」のチェックを外す
ただし、大量データでは根本解決にならない。
4. VS Code / テキストエディタの問題
メリット:
- 日付形式を壊さない ✅
- 軽量で動作も速い ✅
デメリット:
- データの確認・編集がしづらい
- 7万件以上のデータを手作業で修正するのは現実的でない
💡 解決策:DateTime形式への統一
重要な発見
プロジェクト中に、日付/時間型の項目について発見がありました。
日付/時間型の場合:
LastModifiedDate
2025-10-21T14:30:00
→ Excelで開いても文字列として認識される ✅
「ならば、日付型も同じ形式にしたらどうなる?」
実証:動作確認
テスト環境
- オブジェクト: 取引先(Account)
- 項目: データ型: date
- データ件数: 88,983件
実験:日付型に DateTime 形式を入れる
CSV形式:
2021-03-19T00:00:00
Data Loaderでインポート実行
結果:
データ型: date
保存された値: 2021-03-19 ✅
重要なポイント:
- ✅ 時刻部分(T00:00:00)は自動的に無視される
- ✅ 日付部分だけが正しく保存される
- ✅ Excelで開いても
2021-03-19T00:00:00のまま(文字列扱い) - ✅ Data Loaderでエラーが出ない
統一フォーマットルール
すべての日付・日時項目を DateTime 形式に統一
EXCELのユーザー定義を右記: YYYY-MM-DDThh:mm:ss
【日付/時間型(DateTime)】
例: 2025-10-21T14:30:00
【日付型(Date)】
例: 2021-03-19T00:00:00
メリット
1. Excel問題の完全解決
- ❌ 従来:
2021-03-19→2021/3/19に自動変換 - ✅ 今後:
2021-03-19T00:00:00のまま(文字列扱い)
2. Data Loaderとの完全互換
- ✅ 日付型も日付/時間型も同じ形式
- ✅ パースエラーが出ない
- ✅ 型の自動判別で正しく保存される
3. ツール間の互換性
- ✅ Numbers、Excel、VS Code、どれで開いても同じ
- ✅ データメンテナンスが楽
- ✅ チーム内での混乱が減る
まとめ
Before(従来の方法)
CSVに日付を YYYY-MM-DD で記載
↓
Excelで開くと自動変換される
↓
Data Loaderでエラー
↓
手動で修正(途方もない作業)
After(この方法)
CSVに日付を YYYY-MM-DDT00:00:00 で記載
↓
Excelで開いても文字列のまま
↓
Data Loaderで正常にインポート
↓
完了! 🎉
統一ルール
すべての日付・日時項目を YYYY-MM-DDThh:mm:ss 形式に統一することで:
- ✅ Excelの自動変換問題を回避
- ✅ Data Loaderでのエラーをゼロに
- ✅ チーム内でのデータ共有がスムーズ
- ✅ 大量データでも安定動作
おわりに
日付型にも DateTime 形式を使うという単純な方法で、すべての問題が解決しました。
同じ悩みを持つSalesforce開発者の助けになれば幸いです。