因为项目用到手机和手表通过蓝牙修改时间,网上搜索了一堆例子,没有发现自己想要的设置。因为手机时区改变的话,相对的时间就会发生改变。在中国,默认的时区是"Asic/Shanghai", 当修改时区时,假如修改为首尔也就是"GMT+09:00",
String timeZoneId = TimeZone.getDefault().getID();//首先要获取当前默认的时区 TimeZone.setDefault(TimeZone.getTimeZone(timeZoneId)); //设置当前默认时区,比如首尔 Log.i("lbjjjjj", "TimeZone.getDefault().getID():" + TimeZone.getDefault().getID()); Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String sb = sdf.format(date); try { TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));//要设置为北京时区才能计算出你要的毫秒值 calendar.setTime(new SimpleDateFormat("yyyyMMddHHmmss").parse(sb));//一定要再new一个SimpleDateFormat, 要不然时间毫米会变成北京时间的毫秒值,也就是说假如你设置时区为首尔,时间为9点,如果不new一个SimpleDateFormat,获取的毫秒值就会是北京时间8点的毫秒值。System.out.println("时间转化后的毫秒数为:" + calendar.getTimeInMillis());} catch (Exception e) { e.printStackTrace();