Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert a time from GMT to EST

I have a Date & time "20140508063630" in (yyyyMMddHHmmss) format. I want to convert this Time into EST time zone. How can I do it? If there is any API for this conversion please let me know. Thanks in advance.

like image 801
Ashish Tiwari Avatar asked May 08 '14 05:05

Ashish Tiwari


People also ask

Is GMT always 5 hours ahead of EST?

Eastern Time (ET): EST and EDT The Eastern Time Zone (ET) is an area 5 hours behind Greenwich Mean Time (GMT-5) during the winter months (referred to as Eastern Standard Time or EST) and 4 hours behind Greenwich Mean Time (GMT-4) during the summer months (referred to as Eastern Daylight Time or EDT).

How far ahead is GMT from EST?

GMT is five hours ahead of EST, or Eastern Standard Time, which is the time zone used by cities such as New York.


3 Answers

    try {
          DateFormat gmtFormat = new SimpleDateFormat();
          TimeZone estTime = TimeZone.getTimeZone("EST");
          gmtFormat.setTimeZone(estTime);
          SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
          sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
          System.out.println("EST Time: " + gmtFormat.format(sdf.parse("20140508063630")));
        } catch (ParseException e) {
          e.printStackTrace();
        }
like image 70
Suren Raju Avatar answered Oct 21 '22 03:10

Suren Raju


Since you have tagged your question java-time, you do deserve a java.time answer.

    String dateAndTime = "20140508063630";
    DateTimeFormatter parseFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
    ZonedDateTime coralHarbourDateTime = LocalDateTime.parse(dateAndTime, parseFormatter)
            .atOffset(ZoneOffset.UTC)
            .atZoneSameInstant(ZoneId.of("America/Coral_Harbour"));
    System.out.println(coralHarbourDateTime);

This prints

2014-05-08T01:36:30-05:00[America/Coral_Harbour]

There are a number of things to note though:

  • You also tagged your question android. java.time seems to be coming to Android, but as of writing it is not on the majority of Android phones. Don’ t despair, though, get the ThreeTenABP and use the classes on Android.
  • The SimpleDateFormat and TimeZone classes used in the other answers are long outdated, so if your Android app is doing any work with dates and/or times and/or time zones, I do recommend ThreeTenABP and the modern classes as the programmer friendly and the futureproof way to go.
  • You asked for EST time zone and then gave us a date of May 8, which is in the summer time (DST) part of the year. First, three letter abbreviations are dangerous in being ambiguous and in this case not a full time zone, so avoid them where you can. I solved the problem by using America/Coral_Harbour since I read that this particular place uses EST all year round, no summer time. If this was not what you intended, please provide a different location. If instead I use America/Montreal, I get 2014-05-08T02:36:30-04:00[America/Montreal], for example, with time zone offset -4 instead of -5.

Furhter link: How to use ThreeTenABP in Android Project

like image 28
Ole V.V. Avatar answered Oct 21 '22 03:10

Ole V.V.


Following code for convert date from one timezone to another timezone with any date format

{   String parsedDate = null;

    try {
        SimpleDateFormat dbDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
    dbDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
        Date date = dbUtcDateFormat.parse("20140508063630");

        SimpleDateFormat userDateFormat = new SimpleDateFormat(yyyyMMddHHmmss);
        userDateFormat.setTimeZone(TimeZone.getTimeZone("EST"));
        parsedDate = userDateFormat.format(date);
    } catch (Throwable t) {
        logger.warn("Date Parse Faied : ", t);
    }

    return parsedDate;
}
like image 29
Sameer Kazi Avatar answered Oct 21 '22 02:10

Sameer Kazi