No library required! For some Date object, e.g. t = new Date()
-
convert the local time zone offset from minutes to milliseconds
z = t.getTimezoneOffset() * 60 * 1000 -
subtract the offset from t
tLocal = t-z -
create shifted Date object
tLocal = new Date(tLocal) -
convert to ISO format string
iso = tLocal.toISOString() -
drop the milliseconds and zone
iso = iso.split(".")[0] -
replace the ugly ‘T’ with a space
iso = iso.replace('T', ' ')
Result is a nice ISO-ish format date-time string like “2018-08-01 22:45:50” in the local time zone.