Cambiar el formato de fecha de Gmail a ISO 8601 (es decir, aaaa-mm-dd)

18

¿Hay alguna forma de cambiar el formato de fecha de Gmail a ISO 8601 (es decir, aaaa-mm-dd)?

En lugar de :

ingrese la descripción de la imagen aquí

Franck Dernoncourt
fuente

Respuestas:

9

No veo una forma integrada de cambiar al formato ISO, pero escribí un script de usuario para esto. Probado en Chrome con Tampermonkey. Si Tampermonkey está instalado, al hacer clic en el botón Sin procesar en Github se debe solicitar la instalación del script.

No solicitó que se cambiara el formato de hora, así que lo guardé como está para los correos electrónicos de hoy:

fechas

Incluyendo guión aquí para completar. (comodines agregados a la 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);
        }
      }
    }
  }
}
usuario755496
fuente
Tenga en cuenta que también debe configurar el idioma de Gmail en "Inglés (EE. UU.)" En el menú Configuración / General para que esta versión del script funcione (a partir de hoy 2017-10-25). No funcionará con "Inglés (Reino Unido)".
wip
10

Esto se controla exclusivamente a través de la configuración del idioma.

Con mi idioma configurado en inglés (Estados Unidos), las fechas en la lista de conversación están en la forma Mmm d , con fechas del año pasado y anteriores en la forma mm / dd / aaaa .

Cuando se cambia a inglés (Reino Unido), las formas cambian a d Mmm y dd / mm / aaaa, respectivamente.

No hay otras opciones para el inglés en Gmail. Cuando se cambia a francés, sigue básicamente el mismo estilo que el inglés del Reino Unido (pero obviamente en francés, que no hablo ni leo).

No hay otra configuración para la localización en Gmail, y no hay forma de elegir el formato de fecha independiente del idioma. Parece que su única opción en este momento es usar algo como el script de usuario sugerido por el nombre que cambia constantemente .

cerveza inglesa
fuente
A partir del cambio de UI de mediados de 2018, para las fechas de solo número ahora tenemos m / d / aa en inglés (EE. UU.), Dd / mm / aaaa en inglés (Reino Unido) y francés, y aa-mm-dd en francés ( Canadá). De hecho, estos no son ISO 8601.
Mathieu K.
1

Guión original de: user79865

  1. Se reemplazó @match con @include para una mejor compatibilidad con Opera + Violentmonkey.
  2. Intervalo aumentado a 1 segundo completamente adecuado.
  3. Se corrigió la visualización del tiempo de 12 a 24 horas, pero se mantuvo el AM / PM por razones diplomáticas :)

Guión de trabajo a continuación:

// ==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
fuente
0

El script 2 anterior no funcionó de fábrica para mí, por lo que los reescribí para mi caso (Firefox v57 + Tempermonkey y la configuración regional de 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);
            }

        }
    }

})();
Rabin
fuente
-2

Prueba el francés canadiense en lugar del francés europeo ...

OSSYULYYZ
fuente
Para las fechas de solo número, a partir del cambio de UI de mediados de 2018, Français da dd / mm / aaaa y Français (Canadá) da aa-mm-dd. Ninguno de estos son ISO 8601, ambos son ambiguos y el último produce construcciones tan feas y misteriosas como 08-08-19 y 13-03-10.
Mathieu K.