#!/usr/bin/env node // replace all UTC dates to local dates in pipe // usage: docker logs -t container_name | docker-logs-localtime const pad = d => (d > 9 ? d : '0' + d); Date.prototype.outDateTime = function() { return ( [this.getFullYear(), pad(this.getDate()), pad(this.getMonth() + 1)].join('-') + ' ' + [pad(this.getHours()), pad(this.getMinutes()), pad(this.getSeconds())].join(':') ); }; process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', function(data) { data = data.replace(/\.\d+Z /g, ' '); const match = data.match(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/g); if (match) { match.forEach(dateUtc => { const dateLocal = new Date(dateUtc).outDateTime(); data = data.replace(dateUtc, dateLocal); }); } process.stdout.write(data); });