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
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));
}