cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

Can't create a non-UTC Date object to call .getTime() on

shane
New Contributor II

I need to pull data from an API that needs a timestamp as a parameter. This API retrieves data from a system (not in my control) that is based in the America/Las_Angeles timezone. I have tried for hours to find a way to generate a non-UTC Date object (LocalDateTime object doesnโ€™t contain a getTime() method) so that I can call .getTime() but I seem to only be able to get a string value of the converted UTC Date into my desired timezone.

I tried to find a way to use the getTimezoneOffset() function, but I need a non-UTC Date object in order to get the valid offset from so Iโ€™m back to square one.

Can anyone provide an example of creating a Date object in Snap with a non-UTC timezone that I can call getTime()? (I just need to generate a timestamp based on a PST Date with a 00:00:00 time)

I tried creating the converted string (which I canโ€™t get to include the timezone, because even though the docs point to SimpleDateFormat (Java Platform SE 7 ) as a reference I cannot get the value output for any of the time zone components) and appending โ€™ PSTโ€™ but it still created a UTC Date.

I have spent way too long trying to do something so simple that is a couple lines of code in almost any language and needs some guidance lol.

15 REPLIES 15

tstack
Former Employee

Iโ€™m not sure what youโ€™re asking here since getTime(), by definition, returns the epoch timestamp, which is UTC.

shane
New Contributor II

I donโ€™t think you read the issue fully. I DONโ€™T want UTC based timestamp and you cannot call getTime() on LocalDateTime or LocalDate which is used to create a non-UTC Date object. I cannot find a way to get the timestamp for a non-UTC Date.

It doesnโ€™t matter I guess as I altered the called service to accommodate things.

tstack
Former Employee

In general, a timestamp is the number of seconds/milliseconds from the epoch, where the epoch is defined as January 1st, 1970 00:00:00 UTC. So, a timestamp is pretty much always going to be based in UTC. Asking for a non-UTC timestamp is highly unusual.

Supratim
Contributor III

@shane

You can use Date.now().toLocaleDateTimeString(โ€™ { โ€œtimeZoneโ€:โ€œESTโ€ , " format" :" YYYY-MM-DD" }')