Android“时区”的那些事儿(1)

1. 问题与试验

Android官方API提供了一个获取当前系统时间的方法:

System.currentTimeMillis()

官方文档的说明:

long currentTimeMillis ()

Returns the current time in milliseconds. Note that while the unit of time of the return value is a millisecond, the granularity of the value depends on the underlying operating system and may be larger. For example, many operating systems measure time in units of tens of milliseconds.

See the description of the class Date for a discussion of slight discrepancies that may arise between “computer time” and coordinated universal time (UTC).

这个API被广泛用于获取时间戳计时。同时,Android支持多时区。那么就引出一个问题,在切换时区的时候(随网络自动切换或者手动切换,同时不手动改变手机时间),这个时间戳的值是否是不受影响地持续自增?时区变化会导致当前系统时间随时差而变,这个变化是如何实现的?

先拿一个最简单的测试程序来试验:

public class MainActivity extends AppCompatActivity {
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                test();
            }
        });
    }

    private void test() {
        Log.i("TEST_ZONE", "" + System.currentTimeMillis());
    }
}

点击Button取时间戳打log出来。两次取时间戳,中间切换一次时区:

08-10 09:52:56.087 21629 21629 I TEST_ZONE: 1502329976087
08-10 03:53:19.125 21629 21629 I TEST_ZONE: 1502329999125

可以看到时间戳是在正常地增长。看起来应该是在标准化时间的计算上处理的不同时区时间转换。

2. 系统如何处理时区

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android时区列表是由操作系统提供的,用于设置设备当前所在时区的功能。Android操作系统提供了一个包含世界各地主要城市的时区列表。用户可以根据自己的所在位置或需要选择合适的时区Android时区列表包含了全球大多数的时区,包括主要的城市和国家。用户可以通过进入设备的设置界面,打开日期和时间设置,然后选择时区选项来修改设备的当前时区Android时区列表不仅可以根据用户选择的城市或国家自动调整时间,还可以根据夏令时的变化自动调整时间Android会根据全球各地的夏令时规则来自动更新时区信息,确保设备的时间始终准确。 时区列表还可以帮助用户在不同的时区之间快速切换,例如当用户出差或旅行到不同的国家或地区时,可以根据目的地的时区设置来调整设备时间。 总之,Android时区列表是为了方便用户设置设备的当前时区而提供的功能。它可以根据用户选择的城市或国家自动调整时间,也可以根据夏令时的变化自动更新时区信息,确保设备时间的准确性。 ### 回答2: Android系统提供了一个完整的时区列表,用于方便设置设备的时区时区是用来标识地理区域在时间上的差异,不同国家和地区有不同的时区,主要影响到了常用的时间显示、日期计算和日历功能等。 Android时区列表包括世界上所有主要的国家和地区,以及它们的主要城市。用户可以通过进入设备的设置界面,在日期和时间设置中进行时区的选择和修改。在选择时区时,Android会根据用户所在的地理位置以及设备的网络连接情况,提供一个默认的时区选项,用户还可以手动滚动列表,查找并选择他们所在的国家或地理位置来进行时区的设置。 Android时区列表是按照国家和地区的字母顺序排列的。用户可以根据他们所在的国家或地区的名称来查找并选择相应的时区。例如,如果用户位于中国,则可以选择“中国标准时间”,如果用户位于美国纽约,则可以选择“美国东部时间”。 时区列表中的每个时区都有一个标准时间和可能的夏令时时间,用户可以根据自己所在的地理位置来选择合适的时区。在选择并设置好时区后,设备上的时间将会根据选择的时区自动调整,并确保显示的时间是准确的。 总之,Android提供了一个全面的时区列表,用户可以根据自己所在的国家或地区,选择合适的时区来设置设备的时间,确保时间的显示和计算准确无误。 ### 回答3: Android时区列表是一组标准的时区名称和偏移量,用于在Android设备上设置和调整时间Android时区列表是根据世界各个地区的时差和夏令时政策而形成的。 Android时区列表中包含了全球的各个时区,从东至西覆盖了大部分地球表面。例如,亚洲地区的时区有北京时间、东京时间等;欧洲地区的时区有伦敦时间、柏林时间等;美洲地区的时区有纽约时间、洛杉矶时间等。 在Android设备上,可以根据所在地区和时区的选择来设置时间显示方式。例如,如果用户位于北京,就可以选择北京时间,这样设备上的时间就会自动根据北京时间进行调整。此外,Android还提供了自动时间时区选项,可以通过与移动网络或GPS连接来自动获取设备所在地的时区信息。 Android时区列表不仅可以用于设置设备上的时间显示,还可以在开发应用程序时使用。开发者可以借助Android提供的时区列表来实现在不同时区下正确显示和处理时间相关的功能。 总之,Android时区列表是一组标准的时区名称和偏移量,用于在Android设备上设置和调整时间,涵盖了全球各个地区,方便用户选择所在地的时区,并可以在开发应用程序时使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值