time() changed retrieval of timezones (linux, macOS)

This commit is contained in:
Sebastian Hildebrandt
2024-12-12 08:02:18 +01:00
parent 97c79625ad
commit 5993adeb79
4 changed files with 26 additions and 6 deletions
+19 -5
View File
@@ -34,11 +34,25 @@ const _sunos = (_platform === 'sunos');
function time() {
let t = new Date().toString().split(' ');
return {
current: Date.now(),
uptime: os.uptime(),
timezone: (t.length >= 7) ? t[5] : '',
timezoneName: Intl ? Intl.DateTimeFormat().resolvedOptions().timeZone : (t.length >= 7) ? t.slice(6).join(' ').replace(/\(/g, '').replace(/\)/g, '') : ''
if (_darwin || _linux) {
const stdout = execSync('date +%Z && date +%z && ls -l /etc/localtime 2>/dev/null', util.execOptsLinux);
const lines = stdout.toString().split(os.EOL);
if (lines.length > 3 && !lines[0]) {
lines.shift();
}
return {
current: Date.now(),
uptime: os.uptime(),
timezone: lines[0] && lines[1] ? lines[0] + lines[1] : '',
timezoneName: lines[2] && lines[2].indexOf('/zoneinfo/') > 0 ? (lines[2].split('/zoneinfo/')[1] || '') : ''
};
} else {
return {
current: Date.now(),
uptime: os.uptime(),
timezone: (t.length >= 7) ? t[5] : '',
timezoneName: Intl ? Intl.DateTimeFormat().resolvedOptions().timeZone : (t.length >= 7) ? t.slice(6).join(' ').replace(/\(/g, '').replace(/\)/g, '') : ''
};
};
}