美文网首页
关于日期、时间以及时区

关于日期、时间以及时区

作者: 钦_79f7 | 来源:发表于2019-12-20 16:51 被阅读0次

    UTC

    协调世界时,又称世界标准时间或者世界协调时间,简称UTC(Coordinated Universal Time)。其以原子时长为基础,在时刻上尽量接近于格林尼治标准时间。

    子午线

    本初子午线:Prime meridian,即0度经线,亦称格林威治子午线、格林尼治子午线或者本初经线,是经过英国格林尼治天文台的一条经线(亦称子午线)

    开发中的应用

    在开发中,时常会遇到关于时间、日期、日历等的逻辑处理,这时可能就会遇到一些比较莫名的问题。

    比如根据UTC时间戳转化为日期时间格式,可能会有不同的结果,或者转化出的结果不是自己预期的,这其中就涉及到了时区的概念。

    一些系统方法提供的格式转换(例如:iOS开发语言swift),是基于子午线的时区转换出来的时间格式,而中国属于东八区,所以这个转换出来的时间可能与你的预期正好差了8个小时。

    在Android或Java开发中有时也会遇到类似的问题,不过当APP的用户仅仅局限于国内时,可能不会暴露的那么明显。因为在Java的默认方法中针对时区的处理,会默认采用当前地区的时区作为基准,来自动转换不同地区对应的不同时区。但是这样并不是那么的严谨,或者当前APP仅仅服务于国内用户时,那么由于用户手机时区设置了非中国时区(东八区),那么就会导致转换时出现非预期结果。

    这时,就用到了Locale、TimeZone类,可以通过硬编码当前时区,使得转换结果脱离手机系统设置。

    国内就是对应着Locale.CHINA

    一般需要用到时区处理的类:

    • SimpleDateFormat

      new SimpleDateFormat(pattern, Locale.getDefault()).format(new Date(System.currentTimeMillis()));
      
    • Calendar

      Calendar.getInstance(Locale.CHINA);
      

    相关文章

      网友评论

          本文标题:关于日期、时间以及时区

          本文链接:https://www.haomeiwen.com/subject/hqyinctx.html