At the time of this post my current time is 2017-01-10T19:23:00.000Z
but new Date()
gives me 2017-01-11T00:23:19.521Z
5 hours ahead of my current timezone. This affects the way my data is stored in my MongoDB. I know I can set the time to 5 hours ago using
var datetime = new Date();
datetime.setHours(datetime.getHours()-5);
But I will prefer a better way to do this. I tried using this. I still got the same time. In other parts of my code I get Tue Jan 10 2017 19:54:30 GMT-0500 (EST)
different from the initial time. I will be happy if someone can point out what's wrong here.
At the time of this post my current time is 2017-01-10T19:23:00.000Z
but new Date()
gives me 2017-01-11T00:23:19.521Z
5 hours ahead of my current timezone. This affects the way my data is stored in my MongoDB. I know I can set the time to 5 hours ago using
var datetime = new Date();
datetime.setHours(datetime.getHours()-5);
But I will prefer a better way to do this. I tried using this. I still got the same time. In other parts of my code I get Tue Jan 10 2017 19:54:30 GMT-0500 (EST)
different from the initial time. I will be happy if someone can point out what's wrong here.
2 Answers
Reset to default 7Using moment.js is the easiest way to accomplish what you are asking.
moment().format() // "2017-01-11T13:56:15-05:00"
The output is a string in ISO-8601 format, with time zone offset in effect in your local time zone.
You could do this yourself with a lot of code that reads the various properties of the Date
object, building a string from those values. But it is not built-in to the Date
object in this way.
Also, note any time you try to adjust a Date
object by a time zone offset, you are simply picking a different point in time. You're not actually changing the behavior of the time zone being used by the Date object.
If you don't want to use any exteral JS file, You can simply use following code to get current timezone.
new Date().toString();
new Date().toLocaleString();
and I got1/10/2017, 8:20:30 PM
not exactly what I'm looking for. I will like the time inTZ
format. Howevernew Date(Date.UTC(year, month, day, hour, minute, second))
gave an error ofyear is not defined
– Ekom Commented Jan 11, 2017 at 1:232017-01-11 00:56:01Z
. No idea where you lost one and a half hours? – Bergi Commented Jan 11, 2017 at 2:24Z
means). The one is formatted using.toUTCString()
(or.toISOString()
), the other is formatted using.toString()
which does output your local timezone. They might be represented by the sameDate
object; and no, this does not affect how they are stored in MongoDB. – Bergi Commented Jan 11, 2017 at 2:28