Convert Date/Time for given Timezone - java

前端 未结 16 2434
孤城傲影
孤城傲影 2020-11-22 12:36

I want to convert this GMT time stamp to GMT+13:

2011-10-06 03:35:05

I have tried about 100 different combinations of DateFormat, TimeZone,

16条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-22 12:40

    We can get the UTC/GMT time stamp from the given date.

    /**
     * Get the time stamp in GMT/UTC by passing the valid time (dd-MM-yyyy HH:mm:ss)
     */
    public static long getGMTTimeStampFromDate(String datetime) {
        long timeStamp = 0;
        Date localTime = new Date();
    
        String format = "dd-MM-yyyy HH:mm:ss";
        SimpleDateFormat sdfLocalFormat = new SimpleDateFormat(format);
        sdfLocalFormat.setTimeZone(TimeZone.getDefault());
    
        try {
    
            localTime = (Date) sdfLocalFormat.parse(datetime); 
    
            Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"),
                    Locale.getDefault());
            TimeZone tz = cal.getTimeZone();
    
            cal.setTime(localTime);
    
            timeStamp = (localTime.getTime()/1000);
            Log.d("GMT TimeStamp: ", " Date TimegmtTime: " + datetime
                    + ", GMT TimeStamp : " + localTime.getTime());
    
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
        return timeStamp;
    
    }
    

    It will return the UTC time based on passed date.

    • We can do reverse like UTC time stamp to current date and time(vice versa)

          public static String getLocalTimeFromGMT(long gmtTimeStamp) {
                   try{
                          Calendar calendar = Calendar.getInstance();
                          TimeZone tz = TimeZone.getDefault();
                          calendar.setTimeInMillis(gmtTimeStamp * 1000);
          //              calendar.add(Calendar.MILLISECOND, tz.getOffset(calendar.getTimeInMillis())); 
                          SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
                          Date currenTimeZone = (Date) calendar.getTime();
                          return sdf.format(currenTimeZone);
                      }catch (Exception e) {
                      }
                      return "";  
                  }
      

    I hope this will help others. Thanks!!

提交回复
热议问题