当前位置: 首页 > article >正文

jav常用类-时间处理相关类

时间处理相关类

https://www.bilibili.com/video/BV1bW411o7TJ?p=9

1970年1月1日00:00:00为基准时间,度量单位为毫秒

long now = System.currentTimeMillis();

public class Demo00 {public static void main(String[] args) {Date d = new Date(2000);System.out.println(d.getTime()); // 2000Date d2 = new Date();System.out.println(d2.getTime()); // 当前电脑的时刻 1590648121187System.out.println(d2.after(d)); // trueDate d3 = new Date(2020,2,10);System.out.println(d3); // Wed Mar 10 00:00:00 PST 3920// year - 1900; mon:0-11}
}

遇到日期处理,使用calendar

DateFormat class

时间对象转化为指定格式的字符串,以及把指定格式的字符串转换为时间对象

DateFormat 是一个抽象类,一般使用他的子类SimpleDateFormat类来实现

package com.commonclass.timeclass;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;// 测试时间对象和字符串对象之间的互相转换
// dateformat抽象类和simpledateformate实现类的使用
public class Demo01 {public static void main(String[] args) throws ParseException {// 把时间对象按照"格式字符串指定的格式"转为相应的字符串// 需要定义格式DateFormat df = new SimpleDateFormat("yyyy年MM-dd hh:mm:ss");String str = df.format(new Date(40000000));System.out.println(str); // 1970年01-01 03:06:40// 把字符串按照"格式字符串指定的格式"专程相应的时间对象DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");Date date = df2.parse("2020年05月28日 11时30分00秒");System.out.println(date); // Thu May 28 11:30:00 PDT 2020// 测试其他的格式字符DateFormat df3 = new SimpleDateFormat("D");String str3 = df3.format(new Date());System.out.println(str3); // 149 是今年的第149天}
}

calendar日历类

抽象类,提供日期计算的相关功能

注意月份的表示:0 - 11

日期的获取与设置
package com.commonclass.timeclass;
import java.util.Calendar;
import java.util.GregorianCalendar;// test calendar
public class Demo02 {public static void main(String[] args) {// 创建日期类Calendar calendar = new GregorianCalendar(2999,10,9,22,10,50);// 获得日期的相关元素 get方法int day = calendar.get(Calendar.DATE);int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH);int weekday = calendar.get(Calendar.DAY_OF_WEEK);System.out.println(year); // 2999System.out.println(month); // 10 - NovemberSystem.out.println(weekday); // 7 [1(sunday)-7[saturday]]System.out.println(day); // 9// 设置日期的相关元素Calendar c2 = new GregorianCalendar(); // 不设置参数,c2为当前日期c2.set(Calendar.YEAR,8012);System.out.println(c2);}
}
日期的计算
package com.commonclass.timeclass;import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;// 日期的计算
public class Demo03 {public static void main(String[] args) {// 计算Calendar c = new GregorianCalendar();c.add(Calendar.DATE,100); // 日期往后一百天System.out.println(c); // YEAR=2020,MONTH=8,WEEK_OF_YEAR=36// 日期对象和时间对象的转化Date d = c.getTime(); // 日期对象转为时间对象Calendar c1 = new GregorianCalendar();c1.setTime(new Date()); // 时间对象转为日期类System.out.println(d); // Sat Sep 05 11:56:45 PDT 2020printCalendar(c1); // 2020年5月28日 0时7分5秒 周4}public static void printCalendar(Calendar c){// print yyyy年MM月dd日 hh时mm分ss秒 周几int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH)+1;int date = c.get(Calendar.DAY_OF_MONTH);int weekday = c.get(Calendar.DAY_OF_WEEK)-1;String weekday2 = weekday == 0 ? "日" : weekday + "";int hour = c.get(Calendar.HOUR);int minute = c.get(Calendar.MINUTE);int second = c.get(Calendar.SECOND);System.out.println(year+"年"+month+"月"+date+"日 "+hour+"时"+minute+"分"+second+"秒 "+ "周"+weekday2);}
}
可视化日历程序
package com.commonclass.timeclass;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;// 可视化日历程序
public class Demo04 {public static void main(String[] args) throws ParseException {System.out.println("please enter date(format:2020-4-5)");Scanner scanner = new Scanner(System.in);String str = scanner.nextLine();
//        String str = "2028-9-10";DateFormat df = new SimpleDateFormat("yyyy-MM-dd");Date date = df.parse(str); // 字符串转为时间对象Calendar c = new GregorianCalendar(); // 日期类c.setTime(date); // 时间对象转为日期对象int day = c.get(Calendar.DAY_OF_MONTH); // 获取dayint maxday = c.getActualMaximum(Calendar.DATE); // 获取每月最大天数System.out.println("s\tm\tt\tw\tth\tf\tsa");c.set(Calendar.DAY_OF_MONTH,1);for(int i =0;i<c.get(Calendar.DAY_OF_WEEK)-1;i++){System.out.print("\t"); // 将第一天的日期和周对齐}for(int i = 1;i<=maxday;i++){if (day == c.get(Calendar.DAY_OF_MONTH)){System.out.print(c.get(Calendar.DAY_OF_MONTH)+"*\t");}else{ System.out.print(c.get(Calendar.DAY_OF_MONTH)+"\t");}if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){System.out.println(); // 换行}c.add(Calendar.DAY_OF_MONTH,1);}}
}

在这里插入图片描述

http://www.lryc.cn/news/2415069.html

相关文章:

  • Homebrew你了解吗?
  • MinGW下载和安装以及环境配置详细步骤
  • 一(一)、keil常见问题和解决方法常用操作
  • DOM 基础知识
  • flex布局(详解)
  • 第4章 探究 Composer 加载原理
  • Altium Designer 小白入门教程
  • 头条 _signature 解析 步步调试超级详细傻瓜式教程 2023版
  • Lua和C语言交互入门
  • DCS控制系统概述
  • 电赛经验分享——一文看懂PID
  • ROS学习笔记(一)从0开始的ROS的安装以及初步使用
  • async 和 await(详解)
  • kubernetes(4)Pod的核心概念、Pod的调度
  • SSM框架(七):MyBatisPlus
  • 超详细的图解 Numpy,不收藏后悔!
  • Java中UUID的简单介绍
  • 国产操作系统环境下VNC的使用教程
  • 2024最新最全:【CISP系列考试大纲】零基础入门到精通
  • Snap: 高性能图处理框架详解与实践指南
  • Spring Boot注解汇总(详细)
  • 多功能计算机器在线,多功能数学计算器(RedCrab The Calculator)
  • k8s入门-k8s整体架构介绍
  • 如何关闭Microsoft Office-PowerPoint的OfficePlus
  • postman下载安装保姆级极简安装教程
  • 简单理解Hadoop(Hadoop是什么、如何工作)
  • Kaggle 新手入门必看,手把手教学
  • zookeeper原理篇-Zookeeper选举过程分析,面试教程视频讲解
  • Split文本分割
  • 【雕爷学编程】Arduino 手册之位操作 lowByte()