Milliseconds to Date in GMT in Java

后端 未结 5 842
一个人的身影
一个人的身影 2020-12-06 08:19

I need to covert milliseconds to GMT date (in Android app), example:

1372916493000

When I convert it by this code:

Calendar cal          


        
5条回答
  •  -上瘾入骨i
    2020-12-06 09:09

    try this

    public class Test{
        public static void main(String[] args) throws IOException {
            Test test=new Test();
            Date fromDate = Calendar.getInstance().getTime();
            System.out.println("UTC Time - "+fromDate);
            System.out.println("GMT Time - "+test.cvtToGmt(fromDate));
        }
        private  Date cvtToGmt( Date date )
            {
               TimeZone tz = TimeZone.getDefault();
               Date ret = new Date( date.getTime() - tz.getRawOffset() );
    
               // if we are now in DST, back off by the delta.  Note that we are checking the GMT date, this is the KEY.
               if ( tz.inDaylightTime( ret ))
               {
                  Date dstDate = new Date( ret.getTime() - tz.getDSTSavings() );
    
                  // check to make sure we have not crossed back into standard time
                  // this happens when we are on the cusp of DST (7pm the day before the change for PDT)
                  if ( tz.inDaylightTime( dstDate ))
                  {
                     ret = dstDate;
                  }
               }
    
               return ret;
            }
    }
    

    Test Result :
    UTC Time - Tue May 15 16:24:14 IST 2012
    GMT Time - Tue May 15 10:54:14 IST 2012

提交回复
热议问题