Java 常用方法实例 日期时间

Date类

获取当前日期时间

import java.util.Date;

public class 获取当前日期时间 {
  public static void main(String[] args) {
    // 初始化 Date 对象
    Date date = new Date();
    // 使用 toString() 函数显示日期时间
    System.out.println(date.toString());
  }
}

执行结果

Wed Jan 12 23:12:18 CST 2022

格式化日期时间

1.SimpleDateFormat格式化日期时间

yyyy年,
MM(01-12)
dd(01-31)
hh时/12(01-12)
HH时/24(00-23)
mm(0-59)
ss(0-59)
SSS毫秒(000-999)
E周几(一二三四五六日)
EEEE星期几(一二三四五六日)
D今年的第几天(1-365)
F今年的第几周(按日划分,7天为一周)
w今年的第几周(按星期划分,周日为第1天,周六为第7天)
W本月的第几周(按星期划分,周日为第1天,周六为第7天)
k今天的第几小时(1:00-2:00是第1小时,0:00-1:00是第24小时)
a上午/下午标记
K上午/下午的第几小时/第几小时,
(0:00-1:00是第0小时,11:00-12:00是第11小时)
(12:00-13:00是第0小时,23:00-0:00是第11小时)
G公元标记
z时区标记

import java.util.*;
import java.text.*;

public class 格式化日期时间 {
  public static void main(String[] args) {
    Date dateTime = new Date( );

    //SimpleDateFormat格式化日期时间
    SimpleDateFormat date = new SimpleDateFormat ("yyyy-MM-dd");
    System.out.println("年-月-日: " + date.format(dateTime));

    SimpleDateFormat time = new SimpleDateFormat ("hh:mm:ss.SSS");
    System.out.println("时:分:秒.毫秒: " + time.format(dateTime));

    SimpleDateFormat weekday = new SimpleDateFormat ("E/EEEE");
    System.out.println("周/星期: " + weekday.format(dateTime));

    SimpleDateFormat year_day = new SimpleDateFormat ("D");
    System.out.println("今年的第几天: " + year_day.format(dateTime));

    SimpleDateFormat year_weekday = new SimpleDateFormat ("F");
    System.out.println("今年的第几周(按日划分,7天为一周): " + year_weekday.format(dateTime));

    SimpleDateFormat year_week = new SimpleDateFormat ("w");
    System.out.println("今年的第几周(按星期划分,周日为第1天,周六为第7天): " + year_week.format(dateTime));

    SimpleDateFormat month_week = new SimpleDateFormat ("W");
    System.out.println("本月的第几周(按星期划分,周日为第1天,周六为第7天): " + month_week.format(dateTime));

    SimpleDateFormat day_hour = new SimpleDateFormat ("k");
    System.out.println("今天的第几小时(1:00-2:00是第1小时,0:00-1:00是第24小时): " + day_hour.format(dateTime));

    //`(0:00-1:00是第0小时,11:00-12:00是第11小时)`
    //`(12:00-13:00是第0小时,23:00-0:00是第11小时)`
    SimpleDateFormat AMPM = new SimpleDateFormat ("aK");
    System.out.println("上午/下午的第几小时/第几小时: " + AMPM.format(dateTime));

    SimpleDateFormat AD = new SimpleDateFormat ("G");
    System.out.println("公元标记: " + AD.format(dateTime));

    SimpleDateFormat zone = new SimpleDateFormat ("z");
    System.out.println("时区标记: " + zone.format(dateTime));
  }
}

执行结果

--: 2022-01-15::.毫秒: 01:24:16.682/星期: 周六/星期六
今年的第几天: 15
今年的第几周(按日划分,7天为一周): 3
今年的第几周(按星期划分,周日为第1天,周六为第7): 3
本月的第几周(按星期划分,周日为第1天,周六为第7): 3
今天的第几小时(1:00-2:00是第1小时,0:00-1:00是第24小时): 13
上午/下午的第几小时/第几小时: 下午1
公元标记: 公元
时区标记: CST

2.printf格式化日期时间

%t 开头 %n 换行

普通格式化模板

%tc"全部信息"格式:星期日 一月 31 18:18:18 CST 2022
%tF"年-月-日"格式:2022-01-31
%tD"月/日/年"格式:01/31/22
%tr“HH:MM:SS PM”(12时制)格式:06:18:18 下午
%tT“HH:MM:SS”(24时制)格式:18:18:18
%tR“HH:MM”(24时制)格式:18:18

import java.util.*;

public class printf {
    public static void main(String[] args) {
        Date date = new Date();
        /* 普通格式化模板 */
        System.out.printf("全部信息:%tc%n", date);
        System.out.printf("年-月-日:%tF%n", date);
        System.out.printf("月/日/年:%tD%n", date);
        System.out.printf("时:分:秒 上/下午:%tr%n", date);
        System.out.printf("时:分:秒:%tT%n", date);
        System.out.printf("时:分:%tR%n", date);
    }
}

执行结果

全部信息:周一 117 00:07:58 CST 2022--日:2022-01-17//年:01/17/22::秒 上/下午:12:07:58 上午
时::秒:00:07:58:分:00:07

往往有些时候我们不喜欢这种style

输出字符串类型

%s表示输出字符串
%S将字符串以大写形式输出
支持多个参数

import java.util.*;

public class printf {
    public static void main(String[] args) {
        Date date = new Date();
         /* 输出字符串 */
        System.out.printf("输出字符串:%s%n", 2022);
        System.out.printf("输出字符串并换行:%s%n", "2022");
        System.out.printf("多个参数输出:%s = %s%n", "Name", "Weijun");
        System.out.printf("大写形式输出:%S = %s%n", "Name", "WeiJun");
        System.out.printf("按编号输出:%2$s = %3$s %1$s%n", "jun", "Name", "Wei");
    }
}

执行结果

输出字符串:2022
输出字符串并换行:2022
多个参数输出:Name = Weijun
大写形式输出:NAME = WeiJun
按编号输出:Name = Wei jun
输出布尔类型

%b输出boolean类型

import java.util.*;

public class printf {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.printf("a = %b;%n", true);
        System.out.printf("b = %b;%n", false);
    }
}

执行结果

a = true;
b = false;
输出整数类型

%d10进制整数
%o8进制整数
%x16进制整数
%X16进制整数(字母大写)

import java.util.*;

public class printf {
    public static void main(String[] args) {
        Date date = new Date();
        Integer aObj = 901;
        System.out.printf("10进制整数:%d; %d; %d%n", -901, 901L, aObj);
        System.out.printf(" 8进制整数:%o; %o; %o%n", -901, 901L, aObj);
        System.out.printf("16进制整数:%x; %x; %x%n", -901, 901L, aObj);
        System.out.printf("16进制整数(字母大写):%X; %X; %X%n", -901, 901L, aObj);
    }
}

执行结果

10进制整数:-901; 901; 901
 8进制整数:37777776173; 1605; 1605
16进制整数:fffffc7b; 385; 385
16进制整数(字母大写):FFFFFC7B; 385; 385
输出浮点类型

%e科学计数法输出浮点数
%E科学计数法输出浮点数(大写形式)
%f十进制输出浮点数
%.1f十进制输出浮点数,1位小数
%.3f十进制输出浮点数,3位小数

import java.util.*;

public class printf {
    public static void main(String[] args) {
        Date date = new Date();
        /* 输出浮点类型 */
        Double dObj = 90.1d;
        System.out.printf("科学计数法(输出):%e; %e; %e%n", -123.456f, 987.123456d, dObj);
        System.out.printf("科学计数法(大写):%E; %E; %E%n", -123.456f, 987.123456d, dObj);
        System.out.printf("十进制输出:%f; %f; %f%n", -123.456f, 987.123456d, dObj);
        System.out.printf("设置小数点后几位:%.1f; %.3f; %f%n", -123.456f, 987.123456d, dObj);
    }
}

执行结果

科学计数法(输出)-1.234560e+02; 9.871235e+02; 9.010000e+01
科学计数法(大写)-1.234560E+02; 9.871235E+02; 9.010000E+01
十进制输出:-123.456001; 987.123456; 90.100000
设置小数点后几位:-123.5; 987.123; 90.100000
输出日期类型

%t格式化日期时间类型
%T格式化日期时间类型(大写)
%ty输出年(2位数)
%tY输出年(4位数)
%tm输出月
%tb输出月份简称
%tB输出月份完整名
%td输出日

import java.util.*;

public class printf {
    public static void main(String[] args) {
        Date date = new Date();
        long data = date.getTime();
        System.out.printf("%1$ty-%1$tm-%1$td%n%2$ty-%2$tm-%2$td%n", date, data);
        System.out.printf("%1$tY-%1$tB-%1$td%n%2$tY-%2$tb-%2$td%n", date, data);
    }
}

执行结果

22-01-17
22-01-17
2022-一月-17
2022-1-17
输出时间类型

%tI输出时(12进制)
%tH输出时(24进制)
%tM输出分
%tS输出秒
%tL输出毫秒
%tp输出上/下午

import java.util.*;

public class printf {
    public static void main(String[] args) {
        Date date = new Date();
        /* 输出时间类型 */
        System.out.printf("时:分:秒.毫秒 上/下午(12进制):%1$tI:%1$tM:%1$tS.%1$tL%1$tp%n", date);
        System.out.printf("时:分:秒.毫秒 上/下午(24进制):%1$tH:%1$tM:%1$tS.%1$tL%1$tp%n", date);
    }
}

执行结果

::.毫秒 上/下午(12进制)06:18:18.888下午
时::.毫秒 上/下午(24进制)18:18:18.888下午
输出星期

%tA星期全称
%ta星期简称

import java.util.*;

public class printf {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.printf("星期全称:%1$tA%n", date);
        System.out.printf("星期简称:%1$ta%n", date);
    }
}

执行结果

星期全称:星期一
星期简称:周一

休眠

import java.util.*;

public class sleep {
  public static void main(String[] args) {
    try {
      System.out.println(new Date());
      // 线程休眠3秒
      Thread.sleep(1000*3);
      System.out.println(new Date());
    } catch (Exception e) {
      System.out.println("发现异常");
    }
  }
}

执行结果

Mon Jan 17 12:56:13 CST 2022
Mon Jan 17 12:56:16 CST 2022

可以看出,的确是差了3秒

测量时间

import java.util.*;

public class sleep {
  public static void main(String[] args) {
    try {
      long start = System.currentTimeMillis( );
      System.out.println(new Date());
      Thread.sleep(1000*1);
      System.out.println(new Date());
      long end = System.currentTimeMillis( );
      long diff = end - start;
      System.out.println("睡了多久:"+diff+"毫秒="+(diff/1000)+"秒");
    } catch (Exception e) {
      System.out.println("发现异常");
    }
  }
}

执行结果

Mon Jan 17 13:20:33 CST 2022
Mon Jan 17 13:20:34 CST 2022
睡了多久:1029毫秒=1

Calendar类

创建日期时间对象

Calendar c = Calendar.getInstance();

获取日期时间

    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int date = c.get(Calendar.DATE);
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int minute = c.get(Calendar.MINUTE);
    int second = c.get(Calendar.SECOND);
    int millSecond = c.get(Calendar.MILLISECOND);
    int day = c.get(Calendar.DAY_OF_WEEK)-1;
    String[] months = {"01","02","03","04","05","06","07","08","09","10","11","12"};
    String[] days = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

输出日期时间

System.out.println(year+"-"+months[month]+"-"+date+" "+hour+":"+minute+":"+second+"."+millSecond+" "+days[day]);

设置日期时间

c.set(2022, 0, 19, 18, 18, 18);

改变日期时间

c.add(Calendar.YEAR,0);
c.add(Calendar.MONTH,0);
c.add(Calendar.DATE,0);
c.add(Calendar.HOUR_OF_DAY,0);
c.add(Calendar.MINUTE,0);
c.add(Calendar.SECOND,0);
c.add(Calendar.MILLISECOND,0);

实例

import java.util.Calendar;

public class 日期时间 {
  public static void main(String[] args) {
    //创建日期时间对象
    Calendar c = Calendar.getInstance();

    //设置日期时间
    c.set(2022, 0, 19,18,18,18);

    //改变日期时间
    c.add(Calendar.YEAR,0);
    c.add(Calendar.MONTH,0);
    c.add(Calendar.DATE,0);
    c.add(Calendar.HOUR_OF_DAY,0);
    c.add(Calendar.MINUTE,0);
    c.add(Calendar.SECOND,0);
    c.add(Calendar.MILLISECOND,0);

    //获取日期时间
    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int date = c.get(Calendar.DATE);
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int minute = c.get(Calendar.MINUTE);
    int second = c.get(Calendar.SECOND);
    int millSecond = c.get(Calendar.MILLISECOND);
    int day = c.get(Calendar.DAY_OF_WEEK)-1;
    String[] months = {"01","02","03","04","05","06","07","08","09","10","11","12"};
    String[] days = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

    //输出日期时间
    System.out.println(year+"-"+months[month]+"-"+date+" "+hour+":"+minute+":"+second+"."+millSecond+" "+days[day]);
  }
}

执行结果

2022-01-19 17:49:29.888 星期三
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

望天吼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值