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 기준). "English (UK)"에서는 작동하지 않습니다.
wip

10

이것은 언어 설정을 통해서만 제어됩니다.

내 언어가 영어 (미국)로 설정된 상태에서 대화 목록의 날짜는 Mmm d 형식 이며 작년 및 이전 날짜는 mm / dd / yyyy 형식 입니다 .

영어 (영국)로 변경하면 양식이 각각 d Mmmdd / mm / yyyy로 변경 됩니다.

Gmail에는 영어에 대한 다른 옵션이 없습니다. 프랑스어로 변경하면 기본적으로 영국 영어와 같은 스타일을 따릅니다 (그러나 분명히 말하거나 읽지 않는 프랑스어).

Gmail에는 현지화를위한 다른 설정이 없으며 언어와 상관없이 날짜 형식을 선택할 수 없습니다. 현재 귀하가 선택할 수있는 유일한 방법은 변경되는 이름에서 제안한 사용자 스크립트 와 같은 것을 사용하는 것 입니다.


2018 년 중반 UI 변경으로 숫자 만있는 날짜의 경우 영어 (미국)는 m / d / yy, 영어 (영국)는 dd / mm / yyyy, Français, yy-mm-dd는 Français ( 캐나다). 이것은 실제로 ISO 8601이 아닙니다.
Mathieu 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과 같은 추악하고 신비한 구조를 산출합니다.
Mathieu K.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.