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

阶段二-Day10-日期类

日期类结构:

1.java.util.Date是日期类

2.DateFormat是日期格式类、SimpleDateFormat是日期格式类的子类

Timezone代表时区

3.Calendar是日历类,GregorianCalendar是日历的子类

一. 常用类-Date

1.1 Date构造方法

Date(long date) 使用给定的毫秒时间价值构建 Date对象

Date() 返回系统的当前时间

日期是有时间的起点的,以地理位置格林尼治时间1970-01-01 00:00:00 为标准,视为时间的起点;Date(long date) 指的是距离标准时间过了多少毫秒;

public class Test01 {public static void main(String[] args) {Date date = new Date();//创建对象,返回当前系统的时间System.out.println(date);//创建距离格林尼治时间标准时间过了1000毫秒的日期Date date2 = new Date(1000L);System.out.println(date2);}
}

1.2 Date类常用方法

public class Test01 {public static void main(String[] args) {//1) 创建Date对象返回当前时间Date date = new Date();System.out.println(date);//2) 获得Date时间距离1970-1-1 00:00:00 经过的毫秒数long time = date.getTime();System.out.println(time);//3) 调用System.currentTimeMillis()返回当前时间对应的毫秒数long l = System.currentTimeMillis();System.out.println(l);//4) 根据毫秒数创建日期对象Date date1 = new Date(l);System.out.println(date1);}
}

1.3 常用的日期相关类-java.util.SimpleDateFormat

format方法
public class Test {public static void main(String[] args) {Date date = new Date();//定义字符串标准SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//把日期类变成字符串String s = sdf.format(date);System.out.println(s);}
}
parse方法
public class Test {public static void main(String[] args) throws ParseException {String text = "2023年8月21日 20:52:58";SimpleDateFormat sdf = new SimpleDateFormat("yyyy年M月dd日 HH:mm:ss");Date date = sdf.parse(text);System.out.println(date);}
}

1.4 常用的日期相关类-java.util.Calender

创建Calender日历对象

public class Test {public static void main(String[] args) {//获取实例对象:静态方法,推荐//1.创建对象//Calendar是抽象类,所以不能直接创建对象//使用getInstance()方法创建对象Calendar calendar = Calendar.getInstance();//2.set方法设置日历信息//设置年calendar.set(Calendar.YEAR,2019);//日历用0-11 表示  1-12月calendar.set(Calendar.MONTH,1);//设置日 一月中的天数calendar.set(Calendar.DAY_OF_MONTH,8);//设置一天中的小时数calendar.set(Calendar.HOUR_OF_DAY,15);//设置一小时的分钟数calendar.set(Calendar.MINUTE,20);//设置一分钟的秒数calendar.set(Calendar.SECOND,58);calendar.set(2018,1,2);calendar.set(2017,1,2,22,20,20);//3.get方法获取日历信息System.out.println(calendar.get(Calendar.YEAR));//日历用0-11 表示  1-12月System.out.println(calendar.get(Calendar.MONTH));System.out.println(calendar.get(Calendar.DAY_OF_MONTH));System.out.println(calendar.get(Calendar.HOUR_OF_DAY));System.out.println(calendar.get(Calendar.MINUTE));System.out.println(calendar.get(Calendar.SECOND));//4.将日历转为日期Date date = calendar.getTime();System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));}
}

二. 新日期类

旧日期类计算复杂存在线程安全问题

2.1 日期初始化操作

通过now方法 获得

public class Test {public static void main(String[] args) {//获得Instant对象,获取格林尼治的当前时间Instant instant = Instant.now();System.out.println(instant);//获得LocalDate,获得本地的当前年月日LocalDate localDate = LocalDate.now();System.out.println(localDate);//获得LocalTime,获得本地的当前时分秒LocalTime localTime = LocalTime.now();System.out.println(localTime);//获得LocalDateTime实例,获得本地的当前年、月、日、时、分、秒LocalDateTime localDateTime = LocalDateTime.now();System.out.println(localDateTime);//使用now方法创建ZonedDateTime实例,获得本地时区的年、月、日、时、分、秒ZonedDateTime zonedDateTime = ZonedDateTime.now();//我国时间以东8区为准,也就是所说的北京时间。按东8区计算System.out.println(zonedDateTime);}
}
public class Test2 {public static void main(String[] args) {Year year = Year.now();System.out.println(year);YearMonth month = YearMonth.now();System.out.println(month);MonthDay day = MonthDay.now();System.out.println(day);}
}

通过of方法 获得

public class Test {public static void main(String[] args) {//根据参数创建本地日期对象LocalDate date = LocalDate.of(2023, 12, 1);System.out.println(date);//根据参数创建本地时间对象LocalTime localTime = LocalTime.of(9,12,12,311);System.out.println(localTime);//根据参数创建本地日期加时间对象LocalDateTime localDateTime = LocalDateTime.of(2023,12,12,12,12,12);System.out.println(localDateTime);//根据日期和时间创建本地日期时间对象LocalDateTime localDateTime1 = LocalDateTime.of(date,localTime);System.out.println(localDateTime1);}
}

未完待续

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

相关文章:

  • 多任务并行处理相关面试题
  • Shell脚本学习笔记
  • ROS-安装xacro
  • 为什么说 $mash 是 Solana 上最正统的铭文通证?
  • 安装elasticsearch、kibana、IK分词器、扩展IK词典
  • Spring中常见的BeanFactory后处理器
  • FPGA LCD1602驱动代码 (已验证)
  • c++编程要养成的好习惯
  • 后台管理项目的多数据源方案
  • 视频美颜SDK趋势畅想:未来发展方向与应用场景
  • C++ const 限定符的全面介绍
  • Vue 中的 ref 与 reactive:让你的应用更具响应性(上)
  • 华为云CCE-集群内访问-根据ip访问同个pod
  • Kasada p.js (x-kpsdk-cd、x-kpsdk-ct、integrity)
  • Thinkphp 5框架学习
  • 麒麟云增加计算节点
  • 使用Redis进行搜索
  • Oracle修改用户密码
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • Vue解决跨域问错误:has been blocked by CORS policy 后端跨域配置
  • 【谷歌云】注册谷歌云 创建Compute Engine
  • 面试数据库八股文五问五答第四期
  • 2023 年中国金融级分布式数据库市场报告:TiDB 位列领导者梯队,创新能力与增长指数表现突出
  • 基于ExoPlayer的缓存方案实现
  • 前缀和算法 -- 寻找数组的中心坐标
  • autograd与逻辑回归
  • Xshell 从github克隆项目:使用ssh方式。
  • C++:通过erase删除map的键值对
  • 华为月薪25K的自动化测试工程师到底要会那些技能!
  • diffusers 源码待理解之处