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.