日期工具类

java的日期类有哪些?
    java.util.Date(比较原始,从Java发明就已经有了)
    java.util.Calendar(比较新的)(日历)
    java.time.LocalDate        (java 1.8 新增)(只有日期)
    java.time.LOcalTime        (java 1.8 新增)(只有时间)
    java.time.LocalDateTime    (java 1.8 新增)(日期时间都有)

java关于格式化的类有哪些?
    java.text.NumberFormat
    java.text.DecimalFormat
    java.text.SimpleDateFormat

java.util.Date

Date d = new Date();//实例化日期对象
System.out.println(d.toLocaleString());//获取本地时间(自带格式)
System.out.println(d);//系统当前时间(不是自己想要的格式)
System.out.printf("%tF %<tT %tA %n",d)//获取时间(有规则的)
long t = d.getTime();//通过Date来获取时间戳
int year = d.getYear()+1900;//获得年份

//有哪些方法?
d.getYear();
d.getMonth();
d.getDate();
d.getHOurs();
d.getMInutes();
d.getSeconds();
d.setTime(0);

//格式化类
//java.until.Date类的 格式化类 simpleDateFormat
//格式化类帮助你格式化时间只需要把时间和格式放进去就可以了(E是周几)
SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(s.format(new Date()));

java.util.Calendar

Canlendar c = Calendar.getInstance();
System.out.printf("%tF %<tT %<tA %n",c)//2022-12-20 11:43:03
System.out.printf("%tY年%<tm月%<td日 %tT %n");
//2022年12月20日 11:43:03
System.out.println(c.getDisplayName(Calendar.MONTH,Calendar.LONG_FORMAT,Locale.CHINA));//获取中文状态下的月份:十二月  SHORT_FORMAT:12月

System.out.println(c.getDisplayName(Calendar.DAY_OF_WEEK,Calendar.LONG_FORMAT,locale.CHINA));//获取中文状态下的星期几  SHORT_FORMAT:周几

int year = c.get(Calendar.YEAR);//获取年份
int hour = c.get(Calendar.HOUR_OF_DAY);//获取本地时间的小时
long t = c.getTimeInMillis();//通过Calendar来获取时间戳
//c.get()    c.set()   c.add()
c.set(2000,Calendar.OCTOBER,15);//时间2000年10月15日 OCTOBER是10月
c.set(2000,10-1,15);//和上面一行一样时间2000年10月15日(月是从0开始)
c.add(Calendar.DATE,5)//加5天(也可用负号)
c.add(Calendar.MINUTE,1000);//加1000分钟

java.time.LocalDate

//只存日期,也存星期几,但是不存时间 (E:周二,L:几月,M:12月)
var d = LocalDate.now();//实例化
//d:2020-12-20   d.Year():2022 

Month mm = d.getMonth();//输出月份的英文
mm.getDisplayName(TextStyle.FULL,Locale.CHINA)  //把英文月份改为中文
    
DayOfWeek dw = d.getDayOfWeek();//输出星期几的英文
dw.getDisplayName(TextStyle.FULL,Locale.CHINA)  //把英文星期几改为中文
    
 d.plusDays(5)   //5天后的日期,会返回一个新日期
 d.minusDays(3)  //3天前的日期,会返回一个新日期
 d.plus(25,ChronoUnit.MONTHS)  //25个月后的日期,会返回一个新日期
  
 System.out.println(d.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")));  //自定义时间输出格式
    
 long days = ChronoUnit.DAYS.between(d1,d2);//d1到d2有days天
    
 LocalDate m = LocalDate.of(2020,1,2);
 System.out.println(m);//2020-1-2

java.time.LocalTime

//本地化时间,只有时分秒...没有日期(用的不多)
var t1 = LocalTime.now();
var t2 = LocalTime.of(14,30,20);

//格式化输出
DateTimeFormatter d = DateTimeFormatter.ofPattern("HH时mm分ss秒");
System.out.println(d.format(t1));//用d格式输出t1

java.time.LocalDateTime

//相当于LocalDate + LocalTime  也相当于java.util.Date和Calendar类
var d = LocalDateTime.now(); //实例化

System.out.printf("%tY年%<tm月%<td日 %<tH:%<tM:%<tS %<tA %<tp
%s %n",d,d.getMonth().getDisplayName(TextStyle.FULL,
Locale.CHINA));

//将字符串转换为LocalDateTime
var d2 = LocalDateTime.of(2022,10,17,14,49,50);
System.out.println(d2);

System.out.println(d2.format(DateTimeFormatter.ofPattern("yyyy-MMdd HH:mm:ss")));//按照这个格式输出d2

时间戳

//时间戳1:本质上就是一个long的数字,一个数字就代表日期时间
Date d = new Date();
System.out.println(d.getTime());//时间戳 是一个long的整数
//时间戳2
System.out.println(System.currentTimeMillis());//获取系统当前时间的毫秒数
//时间戳转换成时间
long t = System.currentTimeMillis();
System.out.printf("%tF %<tT %<tA %<tp %n",t)
System.out.printf("%tF %<tT %n",0L);//1970-01-01 08:00:00  
//时间戳3
Canlendar c = Calendar.getInstance();
long t = c.getTimeInMillis()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值