how to convert UTC date to locale GMT time on android

后端 未结 5 790
轻奢々
轻奢々 2021-01-05 04:53

I have this date string : 2016-04-26T09:14:10.477Z which is in UTC timezone. I want to convert it to the user local Timezone, so if it is GMT +02:00, I want a d

5条回答
  •  误落风尘
    2021-01-05 05:08

    Try this, replace the format

    public static final String DATE_FORMAT       = "yyyy-MM-dd'T'HH:mm:ss'Z'";
    
    public static String getFormattedLocalTimeFromUtc (String utcTimeStamp, String outputFormat) {
    
       String formattedTime = null;
       if (!TextUtils.isEmpty (utcTimeStamp)) {
         if (utcTimeStamp.contains ("T")) {
    
            String localTime = null;
            SimpleDateFormat sdf = new SimpleDateFormat (DATE_FORMAT, Locale.getDefault ());
            sdf.setTimeZone (TimeZone.getTimeZone ("UTC"));
            try {
                localTime = sdf.parse (utcTimeStamp).toString ();
            }
            catch (ParseException e) {
                e.printStackTrace ();
            }
    
            DateFormat inputDateFormat = new SimpleDateFormat ("EEE MMM dd HH:mm:ss z yyyy");
            inputDateFormat.setTimeZone (TimeZone.getTimeZone ("UTC"));
            Date date = null;
            try {
                date = inputDateFormat.parse (localTime);
            }
            catch (ParseException e) {
                e.printStackTrace ();
            }
    
            DateFormat outputDateFormat = new SimpleDateFormat (outputFormat);
            formattedTime = outputDateFormat.format (date);
         }
       }
       return formattedTime;
    }
    

提交回复
热议问题