Java 日期时间处理

一、时间相关类

  • java.lang.System
  • java.util.Date
  • java.util.Calendar
  • java.util.GregorianCalendar
  • java.util.TimeZone
  • java.text.DateFormat
  • java.text.DateSimpleFormat
  • java.sql.Date
  • java.sql.Time
  • java.sql.Timestamp

二、各个类之间的关系

三、常见问题及解决

1、什么是UTC/UT?

  • UTC:世界标准时间
  • UT:世界时间

2、什么是GMT?

  • 格林威治标准时间

3、怎样获取当前时间?

   //在1970年1月1日UTC之间的当前时间和午夜之间的差异,以毫秒为单位。
long ctm = System.currentTimeMillis();
//分配一个 Date对象并对其进行初始化,以便它表示分配的时间,测量到最近的毫秒。
Date d = new Date();
//使用默认时区和区域设置获取日历。 Calendar返回的是基于默认时区的当前时间,默认为FORMAT区域设置。
Calendar cal = Calendar.getInstance(); //Calendar是抽象类,不能直接实例化
System.out.println(ctm); //1535808760490
System.out.println(d); //Sat Sep 01 21:32:40 CST 2018
System.out.println(cal); //包含所有日期相关的属性,可以通过get()方法获得对应属性的值

4、怎样格式化时间?

    Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss"); // yyyy-MM-dd hh-mm-ss可以替换,具体类型可以查找Java API
String tssdf = sdf.format(d);

5、怎样将一个字符串转换为日期/时间格式?

  • java.util.Date中的获取单个时间日期的方法已被废弃,要获取这类值,可以使用java.util.Calendar中的相关方法。

  • 示例:

   Calendar cj=new GregorianCalendar(TimeZone.getTimeZone("PRC"));  //中国时间
int hod=cj.get(Calendar.HOUR_OF_DAY); //该方法返回int型
System.out.println("24小时制小时: "+hod); //24小时制小时
System.out.println("12小时制小时: "+cj.get(Calendar.HOUR)); //12小时制小时
System.out.print(cj.get(Calendar.HOUR_OF_DAY)+" 时 "); //12小时制小时
System.out.print(cj.get(Calendar.MINUTE)+" 分 "); //分钟
System.out.println(cj.get(Calendar.SECOND)+" 秒"); //秒
System.out.println("毫秒: "+cj.get(Calendar.MILLISECOND)); //毫秒
System.out.print(cj.get(Calendar.YEAR)+" 年 "); //年
System.out.print((cj.get(Calendar.MONTH)+1)+" 月 "); //月
System.out.println(cj.get(Calendar.DATE)+" 日"); //日
  • 示例输出:
    24小时制小时: 22
12小时制小时: 10
22 时 56 分 7 秒
毫秒: 559
2018 年 9 月 1 日

6、怎样处理从数据库中获取的日期/时间?

  • 日期格式化:

    Date d = res.getDate("stu_date");  //获取日期(只包含年月日)
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
    String dsdf = sdf.format(d); // 2018年07月25日
  • 时间格式化:

    Time t = res.getTime("stu_date");  //获取时间(只包含时分秒)
    SimpleDateFormat sdf = new SimpleDateFormat("hh时mm分ss秒");
    String tsdf = sdf.format(t); // 12时13分35秒
  • 完整时间格式化:

    Timestamp ts = res.getTimestamp("stu_date");
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
    String tssdf = sdf.format(ts);

Java日期时间处理的更多相关文章

  1. Java 日期时间

    Java 日期时间 标签 : Java基础 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含 ...

  2. Java日期时间使用(转)

    Java日期时间使用总结 转自:http://lavasoft.blog.51cto.com/62575/52975/   一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个 ...

  3. Java日期时间,以及相互转换

    Java日期时间,以及相互转化 package com.study.string; import java.text.ParseException; import java.text.SimpleDa ...

  4. Java 日期时间 Date类型,long类型,String类型表现形式的转换

    Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型 java.util.Date dt = new Date(); ...

  5. Java日期时间使用总结[转载]

    Java日期时间使用总结   一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式 ...

  6. Java-Runoob:Java 日期时间

    ylbtech-Java-Runoob:Java 日期时间 1.返回顶部 1. Java 日期时间 java.util 包提供了 Date 类来封装当前的日期和时间. Date 类提供两个构造函数来实 ...

  7. Java日期时间实用工具类

    Java日期时间实用工具类 1.Date (java.util.Date)    Date();        以当前时间构造一个Date对象    Date(long);        构造函数   ...

  8. Java 日期时间格式化

    在此记录Java日期时间格式化转换符,方便以后有需要时查找. 1.日期格式化 2.时间格式化 3.格式化常见的日期时间组合

  9. Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

    Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();Sy ...

随机推荐

  1. Sonar6.7.1配置修改备注

    sonarqube-6.7.1\conf\sonar.properties的配置字段 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useU ...

  2. Hadoop 权限管理

    Hadoop的权限管理同Linux的很像,有用户,用户组之分,同时Hadoop提供了权限管理命令,主要包括: chmod [-R] mode file … 只有文件的所有者或者超级用户才有权限改变文件 ...

  3. MFC 中CString 格式16进制转int 十进制

    代码:CString  v_hex ; int v_dec; v_dec = wcstol(v_hex, NULL, 16);

  4. linux查看用户登录,操作历史等

    who 命令:显示当前当登录的用户的信息 who -b命令:显示系统最近一次的启动时间 w 命令:显示登录的用户及其当前执行的任务 last 命令:显示当前与过去登录系统的用户的信息 lastb 命令 ...

  5. js中的数值转换

    js中有3个函数可以把非数值转换为数值:Number().parseInt().parseFloat().其中Number()可以用于任何数据类型.parseInt()及parseFloat()用于将 ...

  6. i++ 是线程安全的吗?

    相信很多中高级的 Java 面试者都遇到过这个问题,很多对这个不是很清楚的肯定是一脸蒙逼.内心肯定还在质疑,i++ 居然还有线程安全问题?只能说自己了解的不够多,自己的水平有限. 先来看下面的示例来验 ...

  7. jdk 8 日期处理。

    ZoneId id = ZoneId.systemDefault(); LocalDateTime dateTime = LocalDateTime.now(id); System.out.print ...

  8. mysql修改用户密码的方法及命令

    方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:my ...

  9. ActiveMQ(2)---ActiveMQ原理分析之消息发送

    持久化消息和非持久化消息的发送策略 消息同步发送和异步发送 ActiveMQ支持同步.异步两种发送模式将消息发送到broker上.同步发送过程中,发送者发送一条消息会阻塞直到broker反馈一个确认消 ...

  10. vue安装搭建

    title: vue安装搭建 date: 2018-04-21 14:00:03 tags: [vue] --- 安装 首先安装nodejs 直接官网下载最新版本http://nodejs.cn/do ...