DataLoaderで、CSVから日付項目をUploadする、注意点

普通は 日付書式:YYYY-MM-DDで、設定して、SFへInsert/Update場合、TimeZone存在するので、SFに予想以外の実際の日付をDBにインサートされる

例:DateLoaderのTimeZone: Asia/Japan その場合、2012-05-01で、SFへInsertすると、実際2012-04-30 15:00でSFに更新しました

対応方法:

DataLoaderのTimeZoneは GMT に設定する

—————-参考——————–
http://help.salesforce.com/apex/HTViewSolution?id=000047804&language=ja

AppExchange データローダで日付データをインポートすると1日前の日付が登録される

ナレッジ記事番号: 000047804

説明
AppExchange データローダで日付項目にデータをインポート(Insert/Update)すると1日前の日付が登録されます。
例えば、「2011-11-20」というデータをインポートすると、Salesforce上では「2011/11/19」と表示されます。これはなぜでしょうか。

解決策

まず、Saleforceのデータベースでは、日付型、日付時間型項目のデータは内部的に全てGMT(グリニッジ標準時)に変換され格納される仕様になっています。

日付型、日付時間型項目へのDataLoaderによるデータ挿入更新時には、DataLoaderのタイムゾーン設定が考慮され、データベースにはGMTへ変換後の値が格納されます。

例えばDataLoaderのタイムゾーン設定がGMT+9:00となっている場合、日付型項目を2011-11-20という値で更新すると、 DataLoaderではこの値を暗黙的に2011/11/20 0:00(GMT+9:00) と解釈しGMTに変換するため2011/11/19 15:00(GMT) になります。日付型項目では時・分が切り捨てられるため、結果として2011/11/19という、マイナス1日された日付で格納されることになります。

DataLoaderのタイムゾーン設定をたとえばGMT-9:00とされて日付型項目を更新した場合に2011-11-20という値は  2011/11/20 9:00(GMT)に変換されるので、日付型でもマイナスされることはありません。同様にタイムゾーン設定をGMTとされていれば、格納時の時差変換は発 生しません。

なお日付時間型項目に関しては、GMT変換後の値が時・分単位を含め格納されており、画面から参照される場合には再度ユーザ毎のタイムゾーン設定を考慮して時差変換されますため、日付がマイナスされて見えるという現象が起きません。

上記が現状のDataLoaderおよびSalesforceのデータベースの仕様となっております。日付型へのデータ挿入更新時にはこの点を考 慮していただき、下記のようないずれかの方法を採って頂きますようお願い申し上げます。

<「2011/09/01」をSalesforceに登録する方法>
・1日足した日付をインポートする: “2011-09-02”
・9時間足した日時をインポートする: “2011-09-01T09:00:00”
・GMT指定でインポートする: “2011-09-01T00:00:00.000Z” (※「Z」はGMTをあらわします)
・データローダのタイムゾーンを(GMT)グリニッジ標準時に設定してインポートする (下記の手順を参照下さい)

<データローダのタイムゾーン変更手順>
1)データローダのツールバーからSettingsを開く
2)Time Zone に”GMT” を入力する。(日本標準時にするためには”GMT+9:00″あるいは”Asia/Tokyo”と入力する)
3)OKボタンをクリックして設定を保存する。

コメントを残す

メールアドレスが公開されることはありません。