一般的なケースの問題は解決しませんでした。時刻を現在のタイム ゾーンで表示し、前の時間を表示するようにしました。私の場合、現在のタイム ゾーンは米国山岳時間で、前の 1 時間は最終的に米国太平洋時間になります。

以下の jar ファイル内のファイルcalendar-multiday-view.xml
は、Thunderbird が実行されていないときに編集する必要があります。
C:\Users\nreynold.ORADEV\AppData\Roaming\Thunderbird\Profiles\ profile \extensions\{e2fda1a4-762b-4020-b5ad-a41df1933103}\chrome.jar
makeTimeBox()
コメントで示されているように、メソッドを変更する必要があります。
function makeTimeBox(timestr, time2str, size) { // Add time2str parameter
var box = createXULElement("box");
box.setAttribute("orient", orient);
box.setAttribute("align", "left"); // Add
if (orient == "horizontal") {
box.setAttribute("width", size);
} else {
box.setAttribute("height", size);
}
var label = createXULElement("label");
label.setAttribute("class", "calendar-time-bar-label");
label.setAttribute("value", timestr);
label.setAttribute("style", "color: #4080C0; font-weight: bold;"); // Replace "align"
box.appendChild(label);
var label = createXULElement("label"); // Add
label.setAttribute("class", "calendar-time-bar-label"); // Add
label.setAttribute("value", time2str); // Add
box.appendChild(label); // Add
return box;
}
の後に次のメソッドを追加しますmakeTimeBox()
。
function makeTime(hour) {
var h = hour % 12;
if (h == 0)
h = 12;
var s = hour >= 12 ? " pm" : " am";
var result = h + s;
return result;
}
数行下に表示される次の行を削除しますmakeTimeBox()
var formatter = Components.classes["@mozilla.org/intl/scriptabledateformat;1"].
getService(Components.interfaces.nsIScriptableDateFormat);
次の行を変更します...
var timeString;
... することが ...
var timeString, time2String;
約25行下、次の行を置き換えます...
timeString = formatter.FormatTime("",
Components.interfaces.nsIScriptableDateFormat.timeFormatNoSeconds,
theHour, 0, 0);
box = makeTimeBox(timeString, durPix);
... することが ...
timeString = makeTime(theHour) + " MT";
ptHour = theHour - 1;
ptHour += 23;
ptHour %= 24;
ptHour += 1;
time2String = makeTime(ptHour) + " PT";
box = makeTimeBox(timeString, time2String, durPix);