Convert LocalDateTime to LocalDateTime in UTC

java localdatetime to utc string
zoneid utc
instant to localdatetime
localdatetime zoneid
zoneddatetime to utc timestamp
convert timestamp to utc java
zoneddatetime vs localdatetime
datetime to zoneddatetime

Convert LocalDateTime to LocalDateTime in UTC.

LocalDateTime convertToUtc(LocalDateTime date) {

    //do conversion


I searched over net. But did not get a solution

I personally prefer;

as it is the most readable option.

Convert between LocalDateTime to ZonedDateTime , toLocalDateTime() method to get local datetime without timezone information. ZonedDateTime To LocalDateTime Example. ZonedDateTime zdtAtET =  This page will provide examples to convert between Java LocalDateTime and epoch time. An epoch is an instant in time used as an origin of particular calendar era. Epoch is a reference point from which a time is measured.

There is an even simpler way

Java 8 – Convert Instant to LocalDateTime –, LocalDateTime has no concept of time zone, just provide a zero offset UTC+0. package; import java  Java example to convert LocalDateTime to ZonedDateTime and vice-versa. 1) LocalDateTime to ZonedDateTime ZonedDateTime = LocalDateTime + ZoneId Output: 2) ZonedDateTime to LocalDateTime Use ZonedDateTime.toLocalDateTime() method to get local datetime without timezone information. Output: Happy Learning !! References: ZonedDateTime Javadoc LocalDateTime Javadoc ZoneId Javadoc

LocalDateTime does not contain Zone information. ZonedDatetime does.

If you want to convert LocalDateTime to UTC, you need to wrap by ZonedDateTime fist.

You can convert like the below.

LocalDateTime ldt =;

ZonedDateTime ldtZoned = ldt.atZone(ZoneId.systemDefault());

ZonedDateTime utcZoned = ldtZoned.withZoneSameInstant(ZoneId.of("UTC"));


Convert LocalDateTime UTC To System Local Timezone, val now = ❤️ Is this article helpful? Convert LocalDateTime UTC To System Local Timezone. In this post we’ll see Java programs to convert java.time.Instant to LocalDate, LocalTime and LocalDateTime.. 1. An Instant provides an instantaneous point of time in UTC (Coordinated Universal Time) so converting it to LocalDate, LocalDateTime involves converting instant to-

Use the below. It takes the local datetime and converts it to UTC using the timezone. You do not need to create it function.

ZonedDateTime nowUTC =;

If you need to obtain the LocalDateTime part of the ZonedDateTime then you can use the following.


Here is a static method i use in my application to insert UTC time in mysql since i cannot add a default value UTC_TIMESTAMP to a datetime column.

public static LocalDateTime getLocalDateTimeInUTC(){
    ZonedDateTime nowUTC =;

    return nowUTC.toLocalDateTime();

LocalDateTime Now UTC, Learn how to convert ZonedDateTime to String and vice-versa in Java. ZonedDateTime.of(localDateTime, ZoneId.of( "UTC" ));  The LocalDateTime represents date-time without a time-zone such as 2019-10-25T12:15:30 whereas Instant is an instantaneous point on the time-line. We can convert between Java LocalDateTime and Instant in following ways. 1. Convert LocalDateTime to Instant using LocalDateTime.toInstant() method.

Here's a simple little utility class that you can use to convert local date times from zone to zone, including a utility method directly to convert a local date time from the current zone to UTC (with main method so you can run it and see the results of a simple test):

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;

public final class DateTimeUtil {
    private DateTimeUtil() {

    public static void main(final String... args) {
        final LocalDateTime now =;
        final LocalDateTime utc = DateTimeUtil.toUtc(now);

        System.out.println("Now: " + now);
        System.out.println("UTC: " + utc);

    public static LocalDateTime toZone(final LocalDateTime time, final ZoneId fromZone, final ZoneId toZone) {
        final ZonedDateTime zonedtime = time.atZone(fromZone);
        final ZonedDateTime converted = zonedtime.withZoneSameInstant(toZone);
        return converted.toLocalDateTime();

    public static LocalDateTime toZone(final LocalDateTime time, final ZoneId toZone) {
        return DateTimeUtil.toZone(time, ZoneId.systemDefault(), toZone);

    public static LocalDateTime toUtc(final LocalDateTime time, final ZoneId fromZone) {
        return DateTimeUtil.toZone(time, fromZone, ZoneOffset.UTC);

    public static LocalDateTime toUtc(final LocalDateTime time) {
        return DateTimeUtil.toUtc(time, ZoneId.systemDefault());

Format ZonedDateTime to String, Instant, we first convert Date to Instance and then create LocalDateTime GMT+​05:30 2016 value of LocalDateTime: 2016-03-05T21:30:32.601 value of  The LocalDate represents only the date without time and zone id, while the LocalDateTime represents date with time, so in order to convert LocalDate to LocalDateTime we must append the time with the LocalDate. LocalDate to LocalDateTime conversion. There are two methods that we can use to convert LocalDate to LocalDateTime.

How to convert Date to LocalDateTime in Java 8, Instant instances do have a time zone associated with them – UTC to be As we saw above, converting both LocalDateTime and an Instant  The parse() and format() methods are available for all date/time related objects (LocalDateTime, LocalDate or ZonedDateTime). DateTimeFormatter is immutable and thread-safe, and thus the recommended approach is to store it in a static constant where possible.

Working with Time Zones in Java 8, We can convert a LocalDateTime to ZonedDateTime a couple different ways. LocalDateTime ldt = LocalDateTime.parse("2018-07-01T08:00  Java 8 has a completely new API for date and time. One of the most useful classes in this API is LocalDateTime, for holding a timezone-independent date-with-time value. There are probably million

Add a Timezone to LocalDateTime with ZonedDateTime in Java 8 , This class handles conversion from the local time-line of LocalDateTime to the UTC/Greenwich for the local date-time as defined by the rules of the zone ID. Background I'm using threetenbp backport for Android (here), to handle various time related data operations. One of them is to convert a time to a different timezone (current to UTC and back). I

  • Did you find the javadoc for LocalDateTime? It says: "This class does not store or represent a time-zone. Instead, it is a description of the date, as used for birthdays, combined with the local time as seen on a wall clock. It cannot represent an instant on the time-line without additional information such as an offset or time-zone."
  • Your question does not make sense - you should explain the context of this method and what you are trying to achieve. It seems that you have a fundamental misunderstanding of what the various classes of the API represent.
  • If you care about time-zones, you need to use ZonedDateTime, which has conversion methods between time-zones withZoneSameLocal() and withZoneSameInstant()
  • Ya. I understood. Thanks
  • Doesn't this create a new time (now)? The original question was about converting a known time to UTC
  • Nice, but does not answer the original question.
  • This answer converts a UTC date to a LocalDate. The original question was how to convert a LocalDate to a UTC Date.
  • This is correct, though not technically wrapped. ldt.atZone(ZoneId.systemDefault()).withZoneSameInstant(ZoneId.of("UTC")) while concise still conveys meaning enough for not needing the zoned instance variable.
  • ZoneOffset.UTC is a nice replacement for ZoneI‌​d.of("UTC")
  • For UTC, the OffsetDateTime is more appropriate than ZonedDateTime. Use: ZoneOffset.UTC ) or myInstant.atOffset( ZoneOffset.UTC )
  • Also add : final LocalDateTime backToLocal = DateTimeUtil.toZone(utc,ZoneOffset.UTC,ZoneId.systemDefault()); System.out.println("Back To Local: " + backToLocal);
  • LocalDateTime does not record Time Zone, but you may have this knowledge from elsewhere and add this information to your LocalDateTimes before conversion.
  • UTC fr to UTC Z ? doesnt mean anything. UTC = Z, UTC <> fr
  • Please don’t teach the young ones to use the long outdated and notoriously troublesome SimpleDateFormat class. At least not as the first option. And not without any reservation. Today we have so much better in java.time, the modern Java date and time API and its DateTimeFormatter.