简体   繁体   中英

Format date and time from UTC with offset using date-fns

I have a UTC time with offset like below. I'm trying to format the UTC date time string using format function from date-fns library.

import { format } from "date-fns";

const utcDateTime = "2021-10-14T21:03:56.3256046+00:00";
const formattedDate = format(new Date(utcDateTime), "MM/dd/yyyy hh:mm");

What I'm expecting is 10/14/2021 21:03 , a 24 hour time format but what I get is 10/14/2021 04:03 , a converted date time for my timezone.

How to display the date and time exactly like with UTC time instead of converting the date time to local timezone?

I created a working example using CodeSandbox . Could anyone please help?

After spending a lot of time, I was able to achieve the desired result using the plain JavaScript Date object and its functions.

  • First, parsing the date time string and converting it to ISO string using toISOString() function.

  • Second, splitting the formatted date and time extracts from the ISO string.

Below is the code

 const formatToUTCDateTime = (dateString) => { const date = new Date(Date.parse(dateString)); const formattedDate = date.toISOString().split("T")[0].split("-"); const formattedTime = date.toISOString().split("T")[1].split(":"); return `${formattedDate[1]}/${formattedDate[2]}/${formattedDate[0]} ${formattedTime[0]}:${formattedTime[1]}`; }; console.log("Result - ", formatToUTCDateTime("2021-10-14T20:03:56.3256046+00:00"));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM