Changer le format de date Gmail en ISO 8601 (c'est-à-dire aaaa-mm-jj)

18

Existe-t-il un moyen de changer le format de date Gmail en ISO 8601 (c'est-à-dire aaaa-mm-jj)?

Au lieu de :

entrez la description de l'image ici

Franck Dernoncourt
la source

Réponses:

9

Je ne vois pas de méthode intégrée pour passer au format ISO, mais j'ai écrit un script utilisateur pour cela. Testé en Chrome avec Tampermonkey. Si Tampermonkey est installé, cliquer sur le bouton Raw dans Github devrait inviter à l'installation du script.

Vous n'avez pas demandé de modification du format de l'heure, je l'ai donc conservé tel quel pour les e-mails d'aujourd'hui:

Rendez-vous

Y compris le script ici pour être complet. (caractères génériques ajoutés à l'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);
        }
      }
    }
  }
}
user755496
la source
Notez que vous devez également définir la langue de Gmail sur «Anglais (États-Unis)» dans le menu Paramètres / Général pour que cette version du script fonctionne (à compter d'aujourd'hui 2017-10-25). Cela ne fonctionnera pas avec "English (UK)".
essuyez
10

Ceci est contrôlé exclusivement via le paramètre de langue.

Avec ma langue définie sur l'anglais (États-Unis), les dates dans la liste de conversation sont au format Mmm d , avec les dates de l'année dernière et antérieures au format mm / dd / yyyy .

Lorsqu'ils sont modifiés en anglais (Royaume-Uni), les formulaires changent respectivement en d Mmm et jj / mm / aaaa .

Il n'y a pas d'autres options pour l'anglais dans Gmail. Lorsqu'il est changé en français, il suit essentiellement le même style que l'anglais britannique (mais évidemment en français, que je ne parle pas ou ne lis pas).

Il n'y a aucun autre paramètre de localisation dans Gmail et aucun moyen de choisir le format de date indépendamment de la langue. Il semblerait que votre seul choix à l'heure actuelle soit d'utiliser quelque chose comme le script utilisateur suggéré par le nom de celui-ci-en-évolution-constante .

ale
la source
Depuis le changement d'interface de mi-2018, pour les dates uniquement numérotées, nous avons maintenant m / d / yy en anglais (US), dd / mm / yyyy en anglais (UK) et Français, et yy-mm-dd en Français ( Canada). Ce ne sont en effet pas ISO 8601.
Mathieu K.
1

Script original par: user79865

  1. @Match remplacé par @include pour une meilleure compatibilité avec Opera + Violentmonkey.
  2. Augmentation de l'intervalle jusqu'à une seconde entièrement adéquate.
  3. Correction de l'affichage de l'heure de 12 à 24 heures mais gardé l'AM / PM pour des raisons diplomatiques :)

Script de travail ci-dessous:

// ==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
la source
0

Le script 2 ci-dessus n'a pas fonctionné pour moi, donc je les réécris pour mon cas (Firefox v57 + Tempermonkey et Gmail locale 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
la source
-2

Essayez le français canadien au lieu du français européen ...

OSSYULYYZ
la source
Pour les dates uniquement numérotées, à compter du changement de l'interface utilisateur mi-2018, Français donne jj / mm / aaaa et Français (Canada) donne aa-mm-jj. Aucun de ceux-ci n'est ISO 8601, les deux sont ambigus, et le dernier donne des constructions aussi laides et mystérieuses que 08-08-19 et 13-03-10.
Mathieu K.