Java日期时间处理

Posted Rainy113

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java日期时间处理相关的知识,希望对你有一定的参考价值。

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日期时间处理的主要内容,如果未能解决你的问题,请参考以下文章

java 反射代码片段

JS代码片段:一个日期离现在多久了

sql 日期转换代码片段 - Dato,120,konvertere

日期选择器对话框在片段中不起作用[关闭]

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容

如何从片段中调用 getSupportFragmentManager()?