【GAS】スプレッドシートの言語と地域を変更・取得する方法|ロケールをアメリカ合衆国から日本にする(AppScript)

スプレッドシート・スプシspreadsheet GAS-prograshi(プロぐらし)-kv AppsScript
記事内に広告が含まれていることがあります。
[PR]

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+12GMT-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);
}



参考

タイトルとURLをコピーしました