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. js各种特效轮播图,选项卡,放大镜,窗口拖拽,楼层跳转

    // 透明度轮播图 // img:轮播图片 // dot:轮播点 // lbtn:左箭头 // rbtn:右箭头 // banner:轮播盒子 // active:轮播点选中效果类名 // time: ...

  2. CentOS 每个版本的区别

    当我们下载CentOS 7 时会发现有几个版本可以选择,如下: 1.CentOS-7-DVD版本:DVD是标准安装盘,一般下载这个就可以了. 2.CentOS-7-NetInstall版本:网络安装镜 ...

  3. 八大排序算法——插入排序(动图演示 思路分析 实例代码java 复杂度分析)

    一.动图演示 二.思路分析 例如从小到大排序: 1.  从第二位开始遍历, 2.  当前数(第一趟是第二位数)与前面的数依次比较,如果前面的数大于当前数,则将这个数放在当前数的位置上,当前数的下标-1 ...

  4. 移动rem自适应

    /** * rem计算方式:设计图尺寸px / 100 = 实际rem 例: 100px = 1rem */!function (window) { /* 设计图文档宽度 */ var docWidt ...

  5. mongoose的关联查询 :populate

    mongoose关联查询从3.2版本开始支持 基本用法如下: var studentSchema = new Schema({ name:String, age:String, school:{ ty ...

  6. lua调用方法错误

    self.sendMsg(json.encode(info),) self:sendMsg(json.encode(info),) 两个符号就差了一个点,引发的问题确实app崩溃,在这个方法中传的参数 ...

  7. IntelliJ IDEA使用教程(很全)

    IntelliJ IDEA使用教程(很全) 这个编辑器我就不再多做介绍了.直接开始新建maven hello world 的Java web项目啦 你电脑上得有jdk1.7,或者1.8,然后就是mav ...

  8. 使用Java API方式连接HDFS Client测试

    IDEA中新建Maven工程,添加POM依赖, 在IDE的提示中, 点击 Import Changes 等待自动下载完成相关的依赖包. <?xml version="1.0" ...

  9. dos语法

    一)MD——建立子目录 1.功能:创建新的子目录 2.类型:内部命令 3.格式:MD[盘符:][路径名]〈子目录名〉 4.使用说明: (1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前 ...

  10. BCP导出数据到EXCEL

    SET @FilePath='D:\TEST.xls' SET @sql='bcp "SELECT * FROM XXX.dbo.XXX WITH(NOLOCK) WHERE XXX=''X ...