🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

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

Q&A

解決済

1回答

3416閲覧

beforeは当日を本当に含むかどうかと、検索演算子の日付で日本標準時で検索する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

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

0グッド

1クリップ

投稿2021/03/07 09:28

前提・実現したいこと

2点質問があります。

・質問1。
こちらのサイトで、beforeは「当日含む」と明言されていますが、本当に含むのでしょうか?
試したところ、含まないような挙動に見えました。

・質問2。
同じく上記サイトにて、「※世界標準時。日本の日付とズレる」と書かれていて、
beforeとafterで試したところ、確かに世界標準時で検索されているようでしたが、
日本標準時で日付指定検索するにはどのようにすればよいでしょうか。

ご教示お願いします。

試したこと

・質問1について。
受信ボックスに2021/03/05のメールがあり、その前後付近に受信メールはなく、以下のように試したのですが、
beforeは「含む」ではなく、「未満」のような挙動に見えました。
本当はbeforeは「当日含む」ではなく、「当日未満」(当日より前の日付)ではないのでしょうか?

after:2021/03/05 before:2021/03/06 → 引っ掛かる after:2021/03/05 before:2021/03/05 → 引っ掛からない after:2021/03/06 before:2021/03/06 → 引っ掛からない after:2021/03/04 before:2021/03/05 → 引っ掛からない after:2021/03/06 before:2021/03/07 → 引っ掛からない

ただ、公式ヘルプを見てみても、特にそういった明言はなく、
可能であれば、beforeとafterの「当日含む」「当日含まない」について、参考にしているサイト以外に明言しているサイトなどあれば
教えていただけませんか?

・質問2について。
GASのプロジェクト設定で "timeZone"を"Asia/Tokyo"に設定もしてみましたが、
検索演算子で検索される日付は、世界標準時のようでした。
日本標準時で日付の範囲を絞り込むにはどのようにすればよいでしょうか?
検索演算子でタイムゾーンを日本標準時に設定する方法はありますか?

function searchContactMail() { const query = "after:2020/07/15 before:2020/07/16"; const start = 0; const max = 10; const threads = GmailApp.search(query, start, max); const messagesForThreads = GmailApp.getMessagesForThreads(threads); for(const messages of messagesForThreads){ console.log(messages[0].getSubject()); } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

UNIX時間でやるとのことです。

after:1388552400 before:1391230800

[Gmail API] 期間を指定してメールを検索する時の条件 | コツコツと
Searching for Messages | Gmail API | Google Developers

質問で提示されたサイトは、APIの解説ではなく、10年以上前のgmailウェブアプリの話ぽいです。
今はgmailウェブアプリで日付検索しても、日本時間で検索されて、ずれも無かったです。
APIだと時間ずれました。

投稿2021/03/07 15:36

gakuburu

総合スコア125

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

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

退会済みユーザー

退会済みユーザー

2021/03/08 05:12

ご回答ありがとうございます。 なるほど、APIの場合はそのまま日本時間で指定する方法はないのですね。 ご教示いただきありがとうございました。
sawa

2021/03/08 05:24

通常の検索だとGmailは時間までは絞れませんが、UNIX時間を使うと時間まで絞って検索できるってのは以前からある裏ワア(公式に掲載されてない)なんですよね。 たぶんbefore,after で日付を入れた時も、裏でUNIX時間に変換して検索をかけていて、 2021/03/06 → 2021/03/06 00:00:00 みたいな 日づけ変わったちょうど0時を指してるんではないかと。 だから before 2021/03/06 だと before 2021/03/06 00:00:00 という扱いで実質 3/6は含まれないという挙動なんじゃないですかね。
退会済みユーザー

退会済みユーザー

2021/03/08 07:44

なるほど、時間が00:00:00だからbeforeでその日付が扱われなかったわけですね。 納得しました。 ご教示いただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問