プロが教えるわが家の防犯対策術!

お世話になります。
GoogleApsのドキュメントに、スクリプトを実行すると、文字と曜日を日本語で表示させるように
組みたいのですが、うまく作成することが出来ません。
yyyy年MM月dd日(E)の記述にすると、曜日は出力されますが、英語でしか出ません。
例 2016年10月3日(Mon)

これをyyyy年MM月dd日(u)にして、表記を日本語で(月)のように出力させるには、どう記述すれば良いでしょうか
あまり詳しくないので、完全な形で記載補助頂けると助かります。

よろしくお願いいたします。




function test() {

var cursor = DocumentApp.getActiveDocument().getCursor()
if (cursor) {
var dMy = Utilities.formatDate(new Date(), "GMT+9", "yyyy年MM月dd日(u) HH:mm以下");
var element = cursor.insertText(dMy);
if (element) {
} else {
DocumentApp.getUi().alert('この場所のカーソルには入力できません.');
}
} else {
DocumentApp.getUi().alert('文字入力モードでカーソルが点滅した状態で再度実行してください。.');
}
}

A 回答 (1件)

こんにちは



Google Appsは存じませんけれども、回答がないようなので…


曜日の表示形式を各国に対応したものをgoogle側で用意しているのかは知りませんが、想像では多分なさそうな気がします。
曜日の表記をローカルな定義できるようなメソッドが用意されているなら、それを利用して設定してから日付を変換すればできるのではないかと思います。


そのような設定ができないのであれば、ご提示の程度の書式にするだけなら自前で作成しても大したことはなさそうですね。
あるいは曜日のところだけ、自前で作成して文字列を連結するのでもよいかも知れません。
例えば対象の日付が変数dにあるとすれば
 "日月火水木金土".substr(d.getDay(), 1)
で、日本語の曜日に変換可能です。

上記はクライアントのローカルなタイムゾーンでの表記になりますが、一方で、ご提示のスクリプトではformatDate()の第二引数にタイムゾーンを指定しているようです。
この指定は、もしかすると入力地域に関わらずGMT+9に換算した結果を返すという仕様なのでしょうか?
その場合は、上記もタイムゾーンで換算し直す必要が生じてきます。


メソッドの仕様がよくわからないので(調べればわかるのでしょうけれど←無精者)、いっそのこと返された文字列から曜日の部分だけ入れ替えるという横着な方法でも良いのかも…
返される曜日表示の形式が『Sun、Mon、Tue・・・』と決まっているのなら、それを入れ替えれば良いだけなので、
 "Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(",").map(function(w, i){
  dMy = dMy.replace(w, "日月火水木金土".substr(i, 1));
 });
のような感じでも可能と思います。
    • good
    • 0
この回答へのお礼

すごい。ご丁寧に回答頂き大変助かりました。
ありがとうございました。

お礼日時:2016/10/23 23:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!