Google App Script(GAS)を使ってスプレッドシートを新規作成すると、デフォルトの言語と地域は「アメリカ合衆国」となります。
この場合、表示される時間は日本の yyyy/mm/dd ではなく、アメリカ式の m/d/yyyyになります。
ここでは、GASを使って【GAS】スプレッドシートの言語と地域を「日本」に変更する方法や現在の設定を取得する方法を実例で解説しています。
デフォルトの状態
初めにデフォルトの状態を見ておきます。
SpreadsheetApp.create
を使ってスプレッドシートを新規作成します。
SpreadsheetApp.create('スプレッドシートの名前')
作成したスプレッドシートの設定を確認すると、「言語と地域」が「アメリカ合衆国」になっています。
この状態でGoogleフォームなどと連携すると、表示がアメリカ式になります。
ロケールを変更する方法|setSpreadsheetLocale
スプレッドシートの設定の「言語と地域」(ロケール)を変更するにはsetSpreadsheetLocaleメソッドを使います。
setSpreadsheetLocale(ロケール)
引数のロケールは文字列で指定します。
例えば、日本の場合は(‘ja’)、フランスの場合は(‘fr’)のように記述します。
なお、現在の言語と地域を取得するにはgetSpreadsheetLocaleメソッドを使います。
getSpreadsheetLocale()
実例
function setSpreadsheet() {
const ssid = "スプレッドシートのID";
const ss = SpreadsheetApp.openById(ssid);
ss.setSpreadsheetLocale('ja') //日本を指定
const ssLocale = ss.getSpreadsheetLocale();
console.log(ssLocale);
}
プログラムを実行すると「言語と地域」が指定したとおり「日本」になりました。
これにより既に入力してあった日付も日本のyyyy/mm/ddに切り替わりました。
タイムゾーンを設定/変更する方法|setSpreadsheetTimeZone
デフォルトのタイムゾーン
スプレッドシートの設定画面を開くと「言語と地域」以外に「タイムゾーン」も指定できるようになっています。
デフォルトは「(GMT+09:00) Tokyo」となり日本のタイムゾーンが設定されています。
この状態で特に変更する必要はないのですが、参考としてGASを使ってタイムゾーンを変更する方法も紹介しておきます。
タイムゾーンを設定/変更する方法
スプレッドシートのタイムゾーンを変更するにはsetSpreadsheetTimeZone
メソッドを使います。
setSpreadsheetTimeZone(タイムゾーン)
日本の場合は('Asia/Tokyo')
、アメリカ合衆国のニューヨークの場合は('America/New_York')
を指定します。
なお、現在設定されているタイムゾーンを取得するにはgetSpreadsheetTimeZoneメソッドを使います。
getSpreadsheetTimeZone()
タイムゾーンの一覧
使えるタイムゾーンは以下になります。
タイムゾーン | エリア | 標準時間との時間差 |
---|---|---|
Africa/Johannesburg | 南アフリカ標準時 | 2 |
Africa/Lagos | 西アフリカ時間 | 1 |
Africa/Windhoek | 西アフリカ時間 | 1 |
America/Adak | ハワイ – アリューシャン標準時 | -10 |
America/Anchorage | アラスカ標準時 | -9 |
America/Argentina/Buenos_Aires | アルゼンチン時間 | -3 |
America/Bogota | コロンビア時間 | -5 |
America/Caracas | ベネズエラ時間 | -4.5 |
America/Chicago | 中部標準時 | -6 |
America/Denver | 山地標準時 | -7 |
America/Godthab | 西グリーンランド時間 | -3 |
America/Guatemala | 中部標準時 | -6 |
America/Halifax | 大西洋標準時 | -4 |
America/Los_Angeles | 太平洋標準時 | -8 |
America/Montevideo | ウルグアイ時間 | -3 |
America/New_York | 東部標準時 | -5 |
America/Noronha | フェルナンド・デ・ノローニャ時間 | -2 |
America/Phoenix | 山地標準時 | -7 |
America/Santiago | チリ時間 | -4 |
America/Santo_Domingo | 大西洋標準時 | -4 |
America/St_Johns | ニューファンドランド標準時 | -3.5 |
Asia/Baghdad | アラビア標準時 | 3 |
Asia/Baku | アゼルバイジャン時間 | 4 |
Asia/Beirut | 東ヨーロッパ時間 | 2 |
Asia/Dhaka | バングラデシュ時間 | 6 |
Asia/Dubai | 湾岸標準時 | 4 |
Asia/Irkutsk | イルクーツク時間 | 9 |
Asia/Jakarta | 西インドネシア時間 | 7 |
Asia/Kabul | アフガニスタン時間 | 4.5 |
Asia/Kamchatka | ペトロパブロフスクカムチャツキー時間 | 12 |
Asia/Karachi | パキスタン時間 | 5 |
Asia/Kathmandu | ネパール時間 | 5.75 |
Asia/Kolkata | インド標準時 | 5.5 |
Asia/Krasnoyarsk | クラスノヤルスク時間 | 8 |
Asia/Omsk | オムスク時間 | 7 |
Asia/Rangoon | ミャンマー時間 | 6.5 |
Asia/Shanghai | 中国標準時 | 8 |
Asia/Tehran | イラン標準時 | 3.5 |
Asia/Tokyo | 日本標準時 | 9 |
Asia/Vladivostok | ウラジオストク時間 | 11 |
Asia/Yakutsk | ヤクーツク時間 | 10 |
Asia/Yekaterinburg | エカテリンブルグ時間 | 6 |
Atlantic/Azores | アゾレス時間 | -1 |
Atlantic/Cape_Verde | カーボベルデ時間 | -1 |
Australia/Adelaide | 中部標準時 (南オーストラリア) | 9.5 |
Australia/Brisbane | 東部標準時 (クイーンズランド) | 10 |
Australia/Darwin | 中部標準時 (ノーザンテリトリー) | 9.5 |
Australia/Eucla | 中西部標準時 (オーストラリア) | 8.75 |
Australia/Lord_Howe | ロードハウ島標準時 | 10.5 |
Australia/Sydney | 東部標準時 (ニューサウスウェールズ) | 10 |
Etc/GMT+12 | GMT-12:00 | -12 |
Europe/Berlin | 中部ヨーロッパ時間 | 1 |
Europe/London | グリニッジ標準時 | 0 |
Europe/Moscow | モスクワ標準時 | 4 |
Pacific/Apia | 西サモア時間 | 13 |
Pacific/Auckland | ニュージーランド標準時 | 12 |
Pacific/Chatham | チャタム標準時 | 12.75 |
Pacific/Easter | イースター島時間 | -6 |
Pacific/Gambier | ガンビア時間 | -9 |
Pacific/Honolulu | ハワイ標準時 | -10 |
Pacific/Kiritimati | ライン諸島時間 | 14 |
Pacific/Majuro | マーシャル島時間 | 12 |
Pacific/Marquesas | マルケサス時間 | -9.5 |
Pacific/Norfolk | ノーフォーク時間 | 11.5 |
Pacific/Noumea | ニューカレドニア時間 | 11 |
Pacific/Pago_Pago | サモア標準時 | -11 |
Pacific/Pitcairn | ピトケルン島標準時 | -8 |
Pacific/Tongatapu | トンガ時間 | 13 |
UTC | 協定世界時 | 0 |
実例
function setSpreadsheet() {
const ssid = "スプレッドシートのID";
const ss = SpreadsheetApp.openById(ssid);
ss.setSpreadsheetTimeZone('Asia/Tokyo'); //日本時間を指定
const ssTimeZone = ss.getSpreadsheetTimeZone();
console.log(ssTimeZone);
}