机器人如何让两个时区android系统之间的时间差?时间差、机器人、时区、两个

2023-09-06 13:44:03 作者:多情人总被伤的最重,

我需要在不同时区的两个日期之间的时间差。目前,我这样做:

I need to get time difference between two dates in different time zones. Currently I am doing this:

Calendar c1=Calendar.getInstance(TimeZone.getTimeZone("EDT"));
Calendar c2=Calendar.getInstance(TimeZone.getTimeZone("GMT"));
String diff=((c2.getTimeInMillis()-c1.getTimeInMillis())/(1000*60*60))+" hours";
new AlertDialog.Builder(this).setMessage(diff).create().show();

我得到 0 小时。我究竟做错了什么?

I get 0 hours. What am I doing wrong?

推荐答案

getTimeInMillis()返回的毫秒数的自UTC时代的。换言之,时区无关它

getTimeInMillis() returns the number of milliseconds since the epoch in UTC. In other words, the time zone is irrelevant to it.

我怀疑你真正想要的:

long currentTime = System.currentTimeMillis();
int edtOffset = TimeZone.getTimeZone("EDT").getOffset(currentTime);
int gmtOffset = TimeZone.getTimeZone("GMT").getOffset(currentTime);
int hourDifference = (gmtOffset - edtOffset) / (1000 * 60 * 60);
String diff = hourDifference + " hours";