Java Convert GMT/UTC to Local time


In Java, you can convert a date and time in GMT/UTC to the local time zone using the TimeZone and SimpleDateFormat classes. Here’s an example of how you can do this:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class TimeConverter {
    public static void main(String[] args) {
        // create a date object in GMT/UTC
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        formatter.setTimeZone(TimeZone.getTimeZone("GMT"));

        // convert GMT/UTC time to local time zone
        Date localDate = new Date(formatter.format(date));
        formatter.setTimeZone(TimeZone.getDefault());
        String formattedDate = formatter.format(localDate);
        System.out.println(formattedDate);
    }
}

In this example, we first create a Date object to represent the current date and time in GMT/UTC. Then, we create a SimpleDateFormat object that specifies the format we want to use for the date and time (yyyy-MM-dd HH:mm:ss) and set its time zone to GMT/UTC. We use the formatter object to convert the date and time to a string representation in GMT/UTC time.

Next, we create a new Date object using the string representation of the GMT/UTC time. This converts the string representation back to a Date object, but this time with the local time zone applied.

Finally, we set the time zone of the formatter object to the default time zone of the system (TimeZone.getDefault()) and use it to format the local date and time as a string. The output will be a string representing the current date and time in the local time zone, formatted as “yyyy-MM-dd HH:mm:ss”.