System.currentTimeMillis exchange Java软件和Android
我尝试在java软件和android工具之间交换信息。我将System.currentTimeMillis exchange Java软件和Android,java,android,database,timezone,derby,Java,Android,Database,Timezone,Derby,我尝试在java软件和android工具之间交换信息。我将System.currentTimeMillis()从我的android工具放到Derby数据库中。 我在UTC-4 关于软件: 当时间是2016年8月9日08:32:32时 长是:1470745952393 这意味着2016年8月9日12:32:32 UTC 在Android上 显示时2016年8月9日08:44:37 它保存了1470732277580 这意味着对于我的时区,2016年8月9日04:44:37 有人有解释吗?您的软件区
System.currentTimeMillis()
从我的android工具放到Derby数据库中。
我在UTC-4
关于软件:当时间是2016年8月9日08:32:32时 长是:
1470745952393
这意味着
2016年8月9日12:32:32 UTC
在Android上显示时
2016年8月9日08:44:37
它保存了1470732277580
这意味着对于我的时区,
2016年8月9日04:44:37
有人有解释吗?您的软件区域设置与设备上的不同。检查两个设备:
java.util.TimeZone.getDefault()
看看它会返回什么。在android上:id=GMT,offset=0,dststavings=3600000,useDaylight=false。。。和软件:d=“美国/纽约”,偏移量=-18000000,是的。好了。两个时区是不同的,因此长的解释是不同的。可能的解决方案是格式化日期:
DateFormat df=DateFormat.getDateInstance(DateFormat.SHORT,您的语言环境);字符串formattedDate=df.format(yourDate)代码>8+4=12,8-4=4=>您使用的是UTC-4,Android工具正在使用UTC。