質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

3444閲覧

Google Apps Script(GAS) Gmail検索⇒スプレッドシートへ書き出し時の日時がズレてしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2021/06/18 04:14

前提・実現したいこと

GASを使用しGmailを検索しスプレッドシートへ書き出した場合
実際にメールを受信した日時と書き出した日時が乖離していまします。
また日時(書き出した際のA列)を昇順にソートしたいのですが、現在のコードへの組み込み方が調べてもよく理解できませんでした。
もし可能な場合は、こちらもご教示いただきたいです。

該当のソースコード

GAS

1function myFunction(){ 2 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 3 var sheet = spreadsheet.getSheetByName("更新用"); // シートの取得 4 var firstRow = sheet.getRange(6,10).getValues();//最終行の確認 5 6 var threads = GmailApp.search('●●●@●●●.com'); // 検索条件指定 7 var messages = GmailApp.getMessagesForThreads(threads); 8 9 //書き込み 10 messages.forEach(function(message){ 11 12 var body = message[0].getPlainBody(); 13 var Subject = message[0].getSubject(); 14 var date = message[0].getDate(); 15 var po = body.split('●●●')[1].split('\n')[0]; 16 var title = body.split('●●●')[1].split('\n')[0]; 17 18 var data = [date,title,Subject,po]; 19 sheet.getRange(firstRow,1,1,data.length).setValues([data]); 20 Logger.log([data]); //確認用 21 22 firstRow++; 23 }); 24}

試したこと

var date = message[0].getDate();
の部分で調整が必要かなは思いますが、自身で調べても原因が理解できませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itagagaki

2021/06/18 04:20

ずれているとは、どんな風にずれているのか、実例を挙げてみてください。 タイムゾーンの関係ではないかという気はしますが。
退会済みユーザー

退会済みユーザー

2021/06/18 04:44

ご確認ありがとうございます。 ▼Gmail受信日時           ▼書き出し後の日時 6月16日(水) 22:18          6月16日(水) 6:12:12 6月17日(木) 20:03          6月17日(木) 3:58:14 上記が実例となります。
itagagaki

2021/06/18 05:15

提示されたコードを実際に実行してみましたが、時間のずれは再現できませんでした。 GMailで表示されている日時とワークシートに書きだされた日時は一致しています。
退会済みユーザー

退会済みユーザー

2021/06/18 06:30

そうですか。 ご確認ありがとうございました。 恐縮ですが、出力結果のソート(受信した日付順)をご教示いただけないでしょうか。 無理な場合は反応していただかなくて問題ありません。 よろしくお願い致します。
guest

回答1

0

ベストアンサー

「質問への追記・修正の依頼」のところにも書きましたが、私が提示されたコードを実際に実行してみたところ、時間のずれは再現できませんでした。
GMailで表示されている日時とワークシートに書き出された日時は一致しています。
なので、そのずれる原因はわかりません。


メッセージのソートはこれでいけると思います。

GAS

1messages.sort( function(a, b) { return a[0].getDate() - b[0].getDate(); } );

投稿2021/06/18 06:57

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/18 07:17

ご丁寧にありがとうございます。 こちらで対応してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問