Dataloaderで日付型、日付/時間型項目を扱う時に知っておきたいこと
毎回どーだったっけ??と頭を使うところをまとめました
さらさら
2021/03/02 17:03:24
◇Salesforceでは日付型、日付/時間型の値はGMTで管理されています
GMT=Greenwich Mean Time = グリニッジ標準時 = 日本時間マイナス9時間・レコード保存時は GMT に変換されて格納
・画面表示はユーザーのタイムゾーン設定に合わせて表示
・レコード抽出ではそのままGMTで出力
これらを頭に入れても実際の作業時に???となってしまいがち...
◇Dataloaderの「日付」 または 「日付/時間」形式
日付型の形式YYYY-MM-DD
YYYY-MM-DD hh:mm:ss
YYYY-MM-DDThh:mm:ssZ
YYYY-MM-DDThh:mm:ss.sssZ
日付/時間型の形式
YYYY-MM-DD hh:mm:ss
YYYY-MM-DDThh:mm:ssZ
YYYY-MM-DDThh:mm:ss.sssZ
~ YYYY-MM-DDThh:mm:ss.sssZについて ~
スラッシュ/ ではなく ハイフン– 表示になります。「T」は、時間要素の始まりを示します。
「Z」は GMT の特別な指定です。
参考:Salesforce ヘルプ
https://help.salesforce.com/articleView?id=000325035&type=1&mode=1
インポートでは上記の形式でCSVファイル値を用意します。
◇Dataloaderで処理する際の考慮事項
インポート
※日付/時間型と日付型で、同じ手段でできないのが注意必要な点です。≪日付/時間型項目≫
例:2000/01/01 0:00表示させたい(希望値になったインポート方法は青背景色です)
① 希望日時をAsia/Tokyoで取り込み、又は
② マイナス9時間したデータをGMT取り込み
1はタイムゾーンがAsia/Tokyoの為マイナス9時間されて取り込みとなります
*2’、3’、4’はマイナス9時間調整をして取り込んでいます
≪日付型項目≫
例:2000/01/01表示させたい(希望値になったインポート方法は青背景色です)
① 希望日をGMTで取り込み、又は
② プラス1日もしくはプラス9時間調整したデータをAsia/Tokyoで取り込み
*1と3はタイムゾーンAsia/Tokyoの為、前日の日付になってしまいます
*1’はプラス1日調整、3’はプラス9時間調整をして取り込んでいます
両項目を含むレコードをインポートする際は更に注意が必要です。
インポート、エクスポートが頻繁な場合はGMT運用がよいようです。
GMT⇔日本時間の変換はExcel関数式で出来ます。
(Google検索すると載せてくれている方がいます)
エクスポート
・日付型項目(2017/07/07) → 2017-07-07・日付/時間型項目(2017/07/07 7:00) → 2017-07-06T22:00:00.000Z
日付型項目は時間が切り捨てされて出力、日時型項目はGMT変換されて出力されます。
※エクスポートのSOQLではGMT時刻を指定します。
◇終わりに
SandboxやTrailhead環境で実際に作業すると理解が深まります。が、定期的に行っていないと、私がそうですが、なかなか覚えられないと思います。
Sandbox等での事前検証は必須です。
類似内容のSalesforceヘルプや他サイトがあるので、複数読んでみてください☆
より理解しやすいものがあったり、認識合わせができると思います。
コメント