Android convert date and time to milliseconds

后端 未结 10 2203
长发绾君心
长发绾君心 2020-11-28 12:05

I have one date and time format as below:

Tue Apr 23 16:08:28 GMT+05:30 2013

I want to convert into milliseconds, but I actually dont know

10条回答
  •  暖寄归人
    2020-11-28 12:12

    Android 26 and higher

    Conversation from epoch to UTC date time and Device date time
    
    public class TimeConversionUtil {
    
    public static long getCurrentEpochUTC() {
        return Instant.now(Clock.systemUTC()).toEpochMilli();
    }
    
    public static String deviceDateTimeString(long epochMilliUtc) {
        Instant instant = Instant.ofEpochMilli(epochMilliUtc);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd, yyyy, hh:mm:ss a", Locale.US).withZone(ZoneId.systemDefault());
        return formatter.format(instant);
    }
    
    public static String uTCDateTimeString(long epochMilliUtc) {
        Instant instant = Instant.ofEpochMilli(epochMilliUtc);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd, yyyy, hh:mm:ss a", Locale.US).withZone(ZoneId.of("UTC"));
        return formatter.format(instant);
    
    }
    
    public static long convertDateStringToLongUTC(String stringUTCDate) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd, yyyy, hh:mm:ss a", Locale.ENGLISH);
        LocalDateTime localDate = LocalDateTime.parse(stringUTCDate, formatter);
        long timeInMilliseconds = localDate.atOffset(ZoneOffset.UTC).toInstant().toEpochMilli();
        return timeInMilliseconds;
    }
    

    }

    @Test
    public void timeConversionTest() {
        long currentTimeUtc = Instant.now(Clock.systemUTC()).toEpochMilli();
        String utc = TimeConversionUtil.uTCDateTimeString(currentTimeUtc);
        Long utcLongTime = TimeConversionUtil.convertDateStringToLongUTC(utc);
        String utc1 = TimeConversionUtil.uTCDateTimeString(utcLongTime);
        assertTrue(utc.equalsIgnoreCase(utc1));
    }
    

提交回复
热议问题