android 更换时区时间同步

本文介绍如何在Android设备上手动更改时区并确保时间同步。通过使用TimeZone类设置默认时区,例如从上海切换到首尔,并通过Calendar与SimpleDateFormat类进行时间转换,以正确处理不同时区的时间差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        因为项目用到手机和手表通过蓝牙修改时间,网上搜索了一堆例子,没有发现自己想要的设置。因为手机时区改变的话,相对的时间就会发生改变。在中国,默认的时区是"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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值