如何获得以毫秒为单位的本地时间和以毫秒为单位的Unix时间之间的差异? (从unixtimestamp转变)

时间:2019-04-25 15:41:28

标签: java android simpledateformat java-date

我知道我可以将字符串格式的unixTime转换为本地时间的毫秒 val currentTimeMillis = serverTimeDateFormat.parse(iso8601).time

我想知道如何在不指定时区的情况下获取设备时区的本地时间(以毫秒为单位)。 我什么时候可以有本地时间(以毫秒为单位),我可以找到本地时间与当前(unix)时间之间的差值,以毫秒为单位。

2 个答案:

答案 0 :(得分:0)

您可以按照如下时区格式设置Unix时间:

long unixSeconds = System.currentTimeMillis();
Date date = new java.util.Date(unixSeconds);

SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
// Set time zone
sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT-4"));
String formattedDate = sdf.format(date);
System.out.println(formattedDate);

答案 1 :(得分:0)

没有“本地unix时间”的概念。 Unix时间戳始终是UTC,并且您的“系统”使用时区参数根据给定(或本地或默认)时区显示日期/时间。

如果要以毫秒为单位的“本地unix时间”,则必须根据与UTC的时区差异来增加或减去毫秒。