1.日期

日期是指某一天,如2016-11-20,2018-1-1

2.时间有2种:

  • 不带日期的时间:14:23:54
  • 带日期的时间:2017-1-1 20:21:23,唯一确定某个时刻

3.时区

时区:全球有24个时区。以英国格林尼治天文台为0度经线。每个时区横跨经度15度。相邻两个时区的时间相差1小时。
计算:区时 = 已知区时 - (已知区时的时区 - 要计算区时的时区)
东时区为正,西时区为负
如:已知北京(东八区)时间为5月1日12:00,求纽约(西五区)的区时。
纽约时间=12:00-[8-(-5)]=-1:00+24:00-1天=23:00(即纽约时间为4月30日的23:00)

没有时区标示的一般某个时刻指的是本地时间
时区的表示方式:

  • GMT+08:00 东八区
  • UTC+08:00 东八区。UTC和GMT基本等价,只是UTC采用原子钟计时。每隔几年,有个闰秒。
  • CST China Standard Time/Central Standard Time USA。代表中国标准时间,也可以是美国中部标准时间,不要使用
  • Asia/Shanghai 地区/城市

4.夏令时

夏令时开始时向前调快1小时,结束时恢复正常,即向后调整1小时。
北京当地时间2016-11-20 8:15,纽约当地时间2016-11-20 19:15
北京当地时间2016-6-20 8:15,纽约当地时间2016-6-20 20:15
按照城市时间会出现夏令时换算;使用GMT/UTC避免夏令时换算弊端。

2016-11-20 2016-6-20
GMT-05:00 19:00 19:00
UTC-05:00 19:00 19:00
America/New York 19:00 20:00

5.地区/Locale

Locale表示一个国家或地区的日期、时间、数字、货币等格式:

  • zh_CN:2016-11-30
  • en_US:11/30/2016

计算机用Locale在日期、时间、货币和字符串之间进行转换:

中国用户 美国用户
购买价格: ¥10077 $1,500
购买日期: 2016-11-20 11/30/2016

6.总结

  • 理解日期、时间和时刻
  • 理解时区的概念
  • 理解夏令时、同一地区用GMT/UTC和城市表示的时区可能导致时间不同
    * GMT-05:00
    * America/New York
  • 理解Locale用来针对当地用户习惯格式化日期、时间、数字、货币等

廖雪峰Java7处理日期和时间-1概念-1日期和时间的更多相关文章

  1. 廖雪峰Java7处理日期和时间-3java.time的API-1LocalDateTime

    1.java.time提供了新的日期和时间API: LocalDate/LocalTime/LocalDateTime ZoneDateTime/ZoneId Instant Formatter 新A ...

  2. 廖雪峰Java7处理日期和时间-4最佳实践-最佳实践

    jdk提供了2套新旧的API来处理日期和时间. java.util * Date * Calendar java.time(JDK>=1.8) * Localdate * LocalTime * ...

  3. 廖雪峰Java7处理日期和时间-3java.time的API-2ZonedDateTime

    ZonedDatetime = LocalDateTime + ZoneId ZonedDateTime:带时区的日期和时间 ZoneId:新的API定义的时区对象(取代几句的java.util.Ti ...

  4. 廖雪峰Java7处理日期和时间-2Data和Calendar-2Calendar

    Calendar类 历史上有许多纪年方法,其差异太大了.为了统一计时,通常采用格里高利日历. 1.创建Calendar对象 Calenda类是一个抽象类,所以不能使用构造器来创建Calendar对象. ...

  5. 廖雪峰Java7处理日期和时间-2Data和Calendar-1Date

    计算机中如何存储和表示日期和时间 Epoch Time:从1970年1月1日零点(格林威治时区/GMT+00:00)到现在经历的秒数,也叫timestamp, 例如: 秒级: * 北京 2016-11 ...

  6. 廖雪峰Java11多线程编程-1线程的概念-5中断线程

    1.中断线程: 如果线程需要执行一个长时间任务,就可能需要中断线程.场景:从网络上下载一个100M的文件,用户在下载过程中中断下载任务的执行. 中断线程就是其他线程给该线程发一个信号,该线程收到信号后 ...

  7. 廖雪峰Java11多线程编程-1线程的概念-3线程的状态

    1线程的状态 线程终止的的原因: run()或call()方法执行完成,线程正常结束 线程抛出一个未捕获的Exception或Error 直接调用该线程的stop()方法来结束该线程--该方法容易导致 ...

  8. 廖雪峰Java11多线程编程-1线程的概念-2创建新线程

    Java语言内置多线程支持: 一个Java程序实际上是一个JVM进程 JVM用一个主线程来执行main()方法 在main()方法中又可以启动多个线程 1.创建新线程 1.1 方法一:使用Thread ...

  9. 廖雪峰Java11多线程编程-1线程的概念-1多线程简介

    多任务 现代操作系统(windows,MacOS,Linux)都可以执行多任务: 多任务就是同时运行多个任务,例如同时开启钉钉.百度网盘.火狐.谷歌.ps等 操作系统执行多任务就是让多个任务交替执行, ...

随机推荐

  1. python的类和对象——类的静态字段番外篇

    什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...

  2. 在线自动创建springboot工程

    https://start.spring.io/

  3. CentOS7下swap分区创建(添加),删除以及相关配置

    在添加swap分区之前我们可以了解下当前系统swap是否存在以及使用情况,可用: 1. free –h 或 swapon –s 了解硬盘使用情况(一般/dev/vda1为挂载硬盘): 1. df –h ...

  4. Tomcat 中 jsp 中文乱码显示处理解决方案

    原地址: http://blog.csdn.net/joyous/article/details/1504274 初学JSP,尤其是Tomcat环境(GlassFish默认UTF-8,则不存在此类问题 ...

  5. centos7安装doxygen

    编译 编译过程参考官网:https://www.stack.nl/~dimitri/doxygen/download.html 编译过程: git clone https://github.com/d ...

  6. MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件

    MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件 前言 万事开头难,有了<MapSer ...

  7. css.1

    background-repeat背景平铺background-x水平平铺 background-y垂直平铺 background:url()no-repeat;不平铺 background-size ...

  8. ios 审核未通过 相机相册权限问题

    苹果提交审核被打回来  附加的说明如下: We noticed that your app requests the user’s consent to access their camera but ...

  9. 剑指Offer 23. 二叉搜索树的后序遍历序列 (二叉搜索树)

    题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 题目地址 https://www.nowcoder ...

  10. 2456 Aggressive cows

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23866   Accepted: 11141 ...