Ändern Sie das Google Mail-Datumsformat in ISO 8601 (dh JJJJ-MM-TT).

18

Gibt es eine Möglichkeit, das Google Mail-Datumsformat in ISO 8601 zu ändern (z. B. JJJJ-MM-TT)?

Anstatt :

Bildbeschreibung hier eingeben

Franck Dernoncourt
quelle

Antworten:

9

Ich sehe keine eingebaute Möglichkeit, zum ISO-Format zu wechseln, aber ich habe ein User-Skript dafür geschrieben. Getestet in Chrome mit Tampermonkey. Wenn Tampermonkey installiert ist, sollte das Klicken auf die Raw-Schaltfläche in Github zur Skriptinstallation auffordern.

Sie haben nicht darum gebeten, das Zeitformat zu ändern. Deshalb habe ich es für die heutigen E-Mails beibehalten:

Termine

Einschließlich Skript hier der Vollständigkeit halber. (Platzhalter zur URL hinzugefügt)

// ==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);
        }
      }
    }
  }
}
user755496
quelle
Beachten Sie, dass Sie Google Mail-Sprache im Menü "Einstellungen" / "Allgemein" auf "Englisch (USA)" einstellen müssen, damit diese Version des Skripts funktioniert (Stand: 25.10.2017). Es funktioniert nicht mit "Englisch (UK)".
Wip
10

Dies wird ausschließlich über die Spracheinstellung gesteuert.

Wenn meine Sprache auf Englisch (USA) eingestellt ist, haben die Daten in der Konversationsliste die Form Mmm d , wobei die Daten für letztes Jahr und früher die Form mm / tt / jjjj haben .

Bei einer Änderung in Englisch (Vereinigtes Königreich) ändern sich die Formen in d Mmm und dd / mm / yyyy .

In Google Mail gibt es keine weiteren Optionen für Englisch. Wenn es auf Französisch geändert wird, folgt es im Grunde dem gleichen Stil wie britisches Englisch (aber offensichtlich auf Französisch, das ich weder spreche noch lese).

Es gibt keine andere Einstellung für die Lokalisierung in Google Mail und keine Möglichkeit, das Datumsformat unabhängig von der Sprache auszuwählen. Es scheint, dass Ihre einzige Wahl zu diesem Zeitpunkt darin besteht, so etwas wie das von denjenigen, die ihren Namen ständig ändern, vorgeschlagene Benutzer-Skript zu verwenden .

Ale
quelle
Seit der Änderung der Benutzeroberfläche von Mitte 2018 sind für Nur-Zahlen-Daten jetzt TT.MM.JJJ in Englisch (USA), TT.MM.JJJJ in Englisch (Großbritannien) und Français sowie TT.MM.JJJ in Français (USA) verfügbar. Kanada). Dies sind in der Tat nicht ISO 8601.
Mathieu K.
1

Original-Skript von: user79865

  1. @Match durch @include ersetzt, um die Kompatibilität mit Opera + Violentmonkey zu verbessern.
  2. Das Intervall wurde auf 1 Sekunde erhöht.
  3. Feste Zeitanzeige von 12 bis 24 Stunden, jedoch aus diplomatischen Gründen AM / PM :)

Arbeitsskript unten:

// ==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);
        }
      }
    }
  }
}
Magnus
quelle
0

Das obige Skript 2 hat bei mir nicht sofort funktioniert, daher habe ich es für meinen Fall umgeschrieben (Firefox v57 + Tempermonkey und Gmail-Gebietsschema 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);
            }

        }
    }

})();
Rabin
quelle
-2

Probieren Sie kanadisches statt europäisches Französisch ...

OSSYULYYZ
quelle
Bei Datumsangaben, die nur Zahlen enthalten, gibt Français ab der Änderung der Benutzeroberfläche Mitte 2018 TT / MM / JJJJ und Français (Kanada) TT-JJ-MM an. Keines davon ist ISO 8601, beide sind nicht eindeutig, und das letztere ergibt so hässliche und mysteriöse Konstruktionen wie 08-08-19 und 13-03-10.
Mathieu K.