Gmailの日付形式をISO 8601(つまり、yyyy-mm-dd)に変更します


回答:


9

ISO形式に切り替える組み込みの方法はありませんが、このためのユーザースクリプト作成しました。Tampermonkeyを使用してChromeでテスト済み。Tampermonkeyがインストールされている場合、GithubのRawボタンをクリックすると、スクリプトのインストールを求めるプロンプトが表示されます。

時刻の形式を変更する必要はありませんでしたので、今日のメールの場合はそのままにしておきます。

日付

完全を期すために、ここにスクリプトを含めます。(URLにワイルドカードを追加)

// ==UserScript==
// @name         ISO date format in Gmail
// @namespace    https://github.com/normalhuman/
// @version      16.2.1
// @description  Change Gmail date format to ISO 8601, per http://webapps.stackexchange.com/q/89499
// @author       Normal Human
// @match        http*://mail.google.com/mail/u/0/*
// @grant        none
// @run-at       document-idle
// ==/UserScript==
/* jshint -W097 */
'use strict';

window.setInterval(toISO, 500);

function toISO() {
  var rows = document.getElementsByTagName('tr');
  for (var i = 0; i < rows.length; i++) {
    var rowElements = rows[i].children;
    if (rowElements.length == 8) {
      var timestamp = rowElements[7].firstElementChild;
      if (!/:/.test(timestamp.textContent)) {
        var parts = timestamp.title.split(/, | | at /);
        if (parts.length == 7) {
          var month = 1 + ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'].indexOf(parts[1]);
          timestamp.textContent = parts[3] + '-' + ('0' + month).slice(-2) + '-' + ('0' + parts[2]).slice(-2);
        }
      }
    }
  }
}

また、このバージョンのスクリプトが機能するには、Gmailの言語を[設定/全般]メニューで[英語(米国)]に設定する必要があります(2017年10月25日現在)。「英語(英国)」では機能しません。
WIP

10

これは、言語設定によってのみ制御されます。

言語を英語(米国)に設定すると、会話リストの日付はMmm dの形式になり、昨年以前の日付はmm / dd / yyyyの形式になります。

英語(英国)に変更すると、フォームはそれぞれd Mmmおよびdd / mm / yyyyに変更されます。

Gmailには英語の他のオプションはありません。フランス語に変更すると、基本的に英国英語と同じスタイルになります(ただし、明らかにフランス語で、私は話したり読んだりしません)。

Gmail内でローカライズする他の設定はなく、言語に依存しない日付形式を選択する方法もありません。現時点での唯一の選択肢は、they-of-the-ever-changing-nameによって提案されユーザースクリプトのようなものを使用することです。


2018年半ばのUIの変更時点で、数字のみの日付については、英語(米国)のm / d / yy、英語(英国)とフランス語のdd / mm / yyyy、フランス語のyy-mm-dd(カナダ)。これらは確かにISO 8601ではありません
マチューK.

1

元のスクリプト:user79865

  1. Opera + Violentmonkeyとの互換性を高めるために、@ matchを@includeに置き換えました。
  2. 間隔を完全に適切に1秒に延長しました。
  3. 12時間から24時間の時間表示を修正しましたが、外交上の理由でAM / PMを維持しました:)

以下の作業スクリプト:

// ==UserScript==
// @name         ISO date format in Gmail
// @namespace    https://github.com/normalhuman/
// @version      16.2.2
// @description  Change Gmail date format to ISO 8601, per /webapps//q/89499
// @author       Normal Human
// @include      http*://mail.google.com/mail/u/0/*
// @grant        none
// @run-at       document-idle
// ==/UserScript==
/* jshint -W097 */
'use strict';

window.setInterval(toISO, 1000);

function toISO() {
  var rows = document.getElementsByTagName('tr');
  for (var i = 0; i < rows.length; i++) {
    var rowElements = rows[i].children;
    if (rowElements.length == 8) {
      var timestamp = rowElements[7].firstElementChild;
      var parts = timestamp.title.split(/, | | at /);
      if (parts.length == 7) {
        if (/:/.test(timestamp.textContent)) {
          var time = parts[5].split(':');
          time[0] = parseInt(time[0],10);
          if (/[Aa][Mm]/.test(parts[6])) {
            if (time[0] == 12) {
              time[0] = 0;
            }
          }
          if (/[Pp][Mm]/.test(parts[6])) {
            time[0] = time[0] + 12;
            if (time[0] == 24) {
              time[0] = 0;
            }
          }
          timestamp.textContent = ('0' + time[0]).slice(-2) + ':' + time[1] + ' (' + parts[6] + ')';
        } else {
          var month = 1 + ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'].indexOf(parts[1]);
          timestamp.textContent = parts[3] + '-' + ('0' + month).slice(-2) + '-' + ('0' + parts[2]).slice(-2);
        }
      }
    }
  }
}

0

上記の2つのスクリプトは、そのままでは機能しなかったため、私のケースに合わせて書き直しました(Firefox v57 + TempermonkeyおよびGmailロケールen-UK)。

// ==UserScript==
// @name         ISO Date for Gmail
// @namespace    http://rabin.io/
// @version      0.1
// @description  Change Gmail date format to ISO 8601, per /webapps//q/89499
// @author       Rabin
// @match        https://mail.google.com/mail/u/*
// @grant        none
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';


    window.setInterval(toISO, 1000);

    function toISO() {

        var rows = document.getElementsByClassName('xW');
        for (var i = 0; i < rows.length; i++) {

            var timestamp = rows[i].firstElementChild.title.split(/, | | at /);

            if (timestamp.length == 5) {
                var d = new Date(timestamp[1] + " " + timestamp[0] + " " + timestamp[2] + " " + timestamp[4]);
                var x = rows[i].firstChild;
                //x.textContent = d.toISOString();
                x.textContent = d.getFullYear() + '-' + ('0' + (d.getMonth()+1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2);
            }

        }
    }

})();

-2

ヨーロッパのフランス語の代わりにカナダのフランス語を試してみてください...


2018年半ばのUI変更時点の数字のみの日付の場合、Françaisはdd / mm / yyyyを、Français(カナダ)はyy-mm-ddを提供します。これらはどちらもISO 8601ではなく、どちらもあいまいであり、後者は08-08-19や13-03-10のようなく不思議な構造を生成します。
マチューK.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.