抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

13 日期

在Java中使用日期,需导入 java.util.Date

1
import java.util.Date;

13.1 创建一个日期对象

  • Date date = new Date();
1
2
3
4
Date now = new Date(); 

//不加参数表示当前时间
//加了参数n表示从1970-01-01 8:00:00开始经历了n毫秒
  • 日期对象转字符串对象:
1
String s = now.toString()

13.2 getTime()方法

getTime()是Date()对象的一个方法,返回类型 long,用于获取从1970-01-01 8:00:00开始到现在经历的毫秒

另外,Date().getTime()System.currentTimeMillis() 是一样的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package date;

//
import java.util.Date;

public class TestDate {

public static void main(String[] args) {
Date now= new Date();

//当前日期的毫秒数
System.out.println("Date.getTime() \t\t\t返回值: "+now.getTime());

//通过System.currentTimeMillis()获取当前日期的毫秒数
System.out.println("System.currentTimeMillis() \t返回值: "+System.currentTimeMillis());

}
}

/*输出:

Date.getTime() 返回值: 1611591854927
System.currentTimeMillis() 返回值: 1611591854927

*/

13.3 格式化日期并转为字符串

格式化日期:

需要用到 SimpleDateFormat

1
import java.text.SimpleDateFormat;
  1. 指定格式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );

    //y 代表年
    //M 代表月
    //d 代表日
    //H 代表24进制的小时
    //h 代表12进制的小时
    //m 代表分钟
    //s 代表秒
    //S 代表毫秒

    // 以上7种可以只选其中一种或多种,根据自己需要来,如:
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd" );
    SimpleDateFormat sdf2 = new SimpleDateFormat("MM/dd" );
  2. 利用sdf对象的 format方法对日期 Date()进行格式化,并返回格式化后的字符串

    1
    2
    Date d = new Date();
    String str = sdf.format(d); //这样日期就按格式转为了字符串

13.4 字符串转日期

三个步骤 :

  1. 指定字符串格式:

    1
    2
    3
    SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" );

    //SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy/MM/dd" );
  2. 创建字符串,注意格式要与 sdf 一致

    1
    2
    3
    String str = "2019-1-15 16:02:27";

    //String str1 = "2019-1-15";
  3. 创建日期对象,用 sdf的 parse(str)方法来把字符串转为日期对象

    1
    Date d = sdf.parse(str);

13.5 日历 Calendar

使用前需要导入:

1
import java.util.Calendar;
  1. 获取日历对象 Calendar.getInstance();

    1
    Calendar cl = Calendar.getInstance();
  2. 通过日历对象得到日期对象: getTime()

    1
    Date d = cl.getTime();
  3. 日期设置:把 cl 这个日历,调成日期(时间原点) —— 1970.1.1 08:00:00,用 setTime()

    1
    2
    Date d2 = new Date(0);
    cl.setTime(d2);

13.6 翻日历

add方法,在原日期上增加(add) 年/月/日
set方法,直接设置(set) 年/月/日

  1. 创建日历对象

    1
    Calendar c = Calendar.getInstance();
  2. 获取当前日期

    1
    Date now = c.getTime();
  3. 把日历改成下个月的今天

    1
    2
    3
    4
    c.setTime(now);           //表示把日历改为当前时间

    c.add(Calendar.MONTH, 1);
    //在当前时间now的基础上修改日历,这里修改了月份,下个月 = 本月 + 1
  4. 把日历改成去年的今天

    1
    2
    c.setTime(now);
    c.add(Calendar.YEAR, -1); //负数表示以前的,去年 = 今年 - 1
  5. 把日历直接设置成上个月的第三天

    1
    2
    3
    4
    5
    6
    c.setTime(now);
    c.add(Calendar.MONTH, -1); //先改月份
    c.set(Calendar.DATE, 3); //再改日数,注意用set

    //如果是今天后的第三天,则用:
    //c.add(Calendar.DATE, 3)

评论