Altere o formato da data do Gmail para ISO 8601 (por exemplo, aaaa-mm-dd)

18

Existe alguma maneira de alterar o formato da data do Gmail para ISO 8601 (por exemplo, aaaa-mm-dd)?

Ao invés de :

insira a descrição da imagem aqui

Franck Dernoncourt
fonte

Respostas:

9

Não vejo uma maneira integrada de mudar para o formato ISO, mas escrevi um script de usuário para isso. Testado no Chrome com Tampermonkey. Se o Tampermonkey estiver instalado, clique no botão Raw no Github para solicitar a instalação do script.

Você não pediu que o formato da hora fosse alterado, então eu o mantive como está nos emails de hoje:

datas

Incluindo script aqui para integridade. (adicionados curingas ao 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
fonte
Observe que você também precisa definir o idioma do Gmail como "inglês (EUA)" no menu Configurações / Geral para que esta versão do script funcione (a partir de 25/10/2017). Não funcionará com "inglês (Reino Unido)".
Wip
10

Isso é controlado exclusivamente através da configuração de idioma.

Com o meu idioma definido para inglês (Estados Unidos), as datas na lista de conversas estão no formato Mmm d , com datas do ano passado e anteriores no formato mm / dd / aaaa .

Quando alterado para inglês (Reino Unido), os formulários mudam para d Mmm e dd / mm / aaaa, respectivamente.

Não há outras opções para inglês no Gmail. Quando alterado para francês, segue basicamente o mesmo estilo do inglês britânico (mas obviamente em francês, que não falo nem leio).

Não há outra configuração para localização no Gmail e não há como escolher o formato da data independentemente do idioma. Parece que sua única opção neste momento é usar algo como o script de usuário sugerido pelo nome que eles sempre mudam .

cerveja
fonte
A partir da alteração da interface do usuário em meados de 2018, para datas somente com números, agora temos m / d / aa em inglês (EUA), dd / mm / aaaa em inglês (Reino Unido) e francês e aa-mm-dd em francês ( Canadá). Estes são, na verdade não ISO 8601.
Mathieu K.
1

Roteiro original por: user79865

  1. Substituiu @match por @include para melhor compatibilidade com o Opera + Violentmonkey.
  2. Intervalo aumentado para 1 segundo totalmente adequado.
  3. Exibição fixa do tempo de 12 a 24 horas, mas manteve o AM / PM por motivos diplomáticos :)

Script de trabalho abaixo:

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

O script 2 acima não funcionou pronto para mim, então eu os reescrevi para o meu caso (Firefox v57 + Tempermonkey e local do 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
fonte
-2

Experimente o francês canadense em vez do francês europeu ...

OSSYULYYZ
fonte
Para datas apenas de número, a partir da alteração da interface do usuário em meados de 2018, Français fornece dd / mm / aaaa e Français (Canadá) fornece aa-mm-dd. Nenhum deles é ISO 8601, ambos são ambíguos, e o último produz construções feias e misteriosas como 08-08-19 e 13-03-10.
Mathieu K.