day30 日期转换

一:Date

Date类: 这个类是java.util.Date

  • getTime() : 获取内部维护的long值

Date date = new Date();
long time = date.getTime();
  • setTime():按照指定的long值(表示的时间)设置Date表示的时间

time += 60*60*24*1000;
date.setTime(time);
  • before(): 此时间是否在指定时间之前

          date1.before(date2)             1在2之前吗?

  • after():此时间是否在指定之间之后

二:Calendar

Calendar类:这个类是java.util包下的类,是JDK1.2推出的用于替换Date类的,但是在实际开发中我们还是使用Date类

    和Date对象相互转换

  • getTime() : 获取当前系统时间的Date对象

Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
long time = date.getTime();
  • setTime(): 将当前的calendar按照指定Date时间进行设置

Date beforeDay = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(beforeDay);

    创建当前时区实例对象 向上造型

         Calendar c = Calendar.getInstance();

     设置对象的具体值  get set 方法的调用  

        年月日时分秒:如图

 

Date time = calendar.getTime();

calendar.setTime(time);//将date日期数据转化为calendar类型、

c.get(Calendar.HOUR_OF_DAY);
c.get(Calendar.MINUTE);
c.get(Calendar.SECOND);
c.get(Calendar.DAY_OF_WEEK) 
c.get(Calendar.DATE)
c.get(Calendar.MONTH)+1 
add方法
c.set(Calendar.YEAR,Calendar.YEAR+3);
等同c.add(Calendar.YEAR,3)

三点五 作业练习

/**
*随机大小写六位数 大小写英文字符数字
*
*/ 
public class Test {public static void main(String[] args) {Random random = new Random();StringBuilder m = new StringBuilder() ;for (int i = 0; i < 6; i++) {char a = (char) ('a'+random.nextInt(26));char a1 = (char) ('A'+random.nextInt(26));int  a2 = (int)(Math.random()*9);int a3 = random.nextInt(11);if (a3 <= 3){m.append(a);}elseif (a3 <= 6){m.append(a1);}elseif (a3 <= 9){m.append(a2);}}System.out.println(m);}
}
/*** 输入商品生产日期  保质天数* 促销日期是往前一周的周三* 2001-02-18* 11*/
public class Test03 {public static void main(String[] args) {try {Scanner scanner = new Scanner(System.in);System.out.println("输入生产日期");System.out.println("输入保质日期");String births = scanner.nextLine();
//            String sells = scanner.next();SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd");Date birth = s1.parse(births);
//            Date sell = s1.parse(sells);int sells = scanner.nextInt();//先算出过期日期long expiredDays = birth.getTime()+sells*1000*24*60*60;//毫秒值Date expiredDay = new Date();expiredDay.setTime(expiredDays);//过期周x日到前一周周x 的日期Date beforeDay = new Date();long beforeDays  = expiredDays -  7L*1000*60*60*24;beforeDay.setTime(beforeDays);//周x到周三的日期Calendar calendar = Calendar.getInstance();calendar.setTime(beforeDay);calendar.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);System.out.println(calendar);Date time = calendar.getTime();String str = s1.format(time);System.out.println(str);} catch (ParseException e) {e.printStackTrace();}}
}

 

/**           两种方法* 输入商品生产日期  保质天数* 促销日期是往前一周的周三* 2001-02-18* 11  */
public class Test03 {public static void main(String[] args) {try {Scanner scanner = new Scanner(System.in);System.out.println("输入生产日期");System.out.println("输入保质日期");String births = scanner.nextLine();
//            String sells = scanner.next();SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd");Date birth = s1.parse(births);
//            Date sell = s1.parse(sells);int sells = scanner.nextInt();//先算出过期日期long expiredDays = birth.getTime()+sells*1000*24*60*60;//毫秒值Date expiredDay = new Date();expiredDay.setTime(expiredDays);//过期周x日到前一周周x 的日期Date beforeDay = new Date();long beforeDays  = expiredDays -  7L*1000*60*60*24;beforeDay.setTime(beforeDays);//周x到周三的日期Calendar calendar = Calendar.getInstance();calendar.setTime(beforeDay);calendar.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);System.out.println(calendar);Date time = calendar.getTime();String str = s1.format(time);System.out.println(str);} catch (ParseException e) {e.printStackTrace();}}
}/*** 计算促销日期* 促销日期为该商品过期日前一周的周三* <p>* 程序启动动,要求用户输入一个商品的生产日期,以及保质期天数* 然后经过处理后输出该商品的促销日期* <p>* 日期格式:yyyy-MM-dd* <p>* 如:* 2023-7-8* 15* 该商品的促销日期为  2023-7-12*/
public class Test02 {public static void main(String[] args) {try {Scanner scan = new Scanner(System.in);System.out.println("请输入商品生产日期:(格式:yyyy-MM-dd)");String createDate = scan.nextLine();System.out.println("请输入商品保质期:");String strDay = scan.nextLine();//将保质期strDay转换int类型int days = Integer.parseInt(strDay); //保质期//将生产日期(String)转换成Date类型SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf.parse(createDate); //生产日期//把生产日期date转换成CalendarCalendar calendar = Calendar.getInstance();calendar.setTime(date);//计算过期日calendar.add(Calendar.DAY_OF_YEAR, days);//计算过期日的前一周calendar.add(Calendar.DAY_OF_YEAR, -7);//设置为当周的周三calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);//将calendar转换成Date,Date time = calendar.getTime();//将time转换成字符串String dateStr = sdf.format(time);System.out.println("该商品的打折日是:" + dateStr);} catch (ParseException e) {e.printStackTrace();}}
}

 

/*** 秒杀活动* 开始时间 2023-11-11 00:00:00* 结束时间 2023-11-11 00:15:00* 小r秒杀时间 00:12:13* 小k秒杀时间 00:15:12*/
public class Test04 {public static void main(String[] args) {try {String s1 = "2023-11-11 00:00:00";String s2 = "2023-11-11 00:15:00";String r = "2023-11-11 00:12:13";String k = "2023-11-11 00:15:12";SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date1 = simpleDateFormat.parse(s1);Date date2 = simpleDateFormat.parse(s2);Date dater = simpleDateFormat.parse(r);Date datek = simpleDateFormat.parse(k);if (dater.before(date2) && dater.after(date1) ){System.out.println("成功");}else {System.out.println("shibai");}if (datek.before(date2) && datek.after(date1)){ System.out.println("成功");}else {System.out.println("shibai");}} catch (ParseException e) {e.printStackTrace();}}
}

三:SimpleDatetime

         创建SimpleDatetime对象  格式任意设置

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");格式

  • yyyy:年

  • MM:月

  • dd: 日

  • HH:24小时的时间

  • hh:12小时的时间

  • mm:分钟

  • ss:秒

           实现String类和Date类相互转换   需要try{}crach(){}抛出格式不匹配异常       

  • parse() 将字符串转换成Date类型

String date = "2008-08-08 20-08-08";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date d = simpleDateFormat.parse(date);
  • format() 将Date类型转换成String类型

Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
String dateStr = simpleDateFormat.format(date);

抛出格式不匹配异常

try {String s1 = "2001-02-18";SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");Date date1 = simpleDateFormat.parse(s1);Date date2 = new Date();System.out.println(date1.before(date2));System.out.println(date1.after(date2));
} catch (ParseException e) {e.printStackTrace();
}

 

四:Math  静态方法

double e = Math.E;
double pi = Math.PI;
Math.abs(323); //绝对值
Math.cbrt(2);  //立方根
Math.floor(2.55);//向上取整
Math.ceil(3.66);//向下取整
Math.round(2.3);
Math.round(1.88);//四舍五入
Math.sqrt(3);//平方根
Math.pow(3,2);//几的几次方
Math.random();//生成0-1随机数   包含0不包含1
double v = Math.random() * 10 + 1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/113880.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

懂点测试基础就敢要17k? 面试官:最多8K,多一分都没有...

公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在10-25k&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。看简历很多都是3年工作经验&#xff0c;但面试…

【C语言】探讨蕴藏在表达式求解中的因素

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;C语言 &#x1f525;该篇将探讨 操作符 和 类型转换 对表达式求解的影响。 目录&#xff1a; 隐式类型转换算术转换操作符的属性❤️ 结语 隐…

伦敦银交易时间怎么选择?

伦敦银和伦敦金都是全球性的交易品种&#xff0c;一般的现货贵金属交易平台&#xff0c;都可以同时经营这两个品种&#xff0c;而且它们的交易时间是一致的&#xff0c;以香港市场的平台为例&#xff0c;基本上交易时间都会从北京周一的早上7点&#xff0c;延续到周六凌晨5点左…

JavaScript基础语法02——JS书写位置

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 今天继续学习JavaScript基础语法&#xff0c;JS的书写位置&#xff0c;俗话说&#xff1a;好记性不如烂笔头&#xff0c;边学边记&#xff0c;方便回顾。 1、行内JavaScript 代码写在标签内部 示例&#xff1a; <…

使用这个插件,fiddler抓包直接生成httprunner脚本

har2case可以将.har文件转化成yaml格式或者json格式的httprunner的脚本文件&#xff0c;生成.har格式文件可以借助 fiddler 或 Charles 抓包工具 友情提示&#xff1a; 录制脚本&#xff0c;只是一个过渡&#xff0c;从0到1的一个过渡&#xff0c;如果让你直接写脚本&#xf…

MySQL— 基础语法大全及操作演示!!!(事务)

MySQL—— 基础语法大全及操作演示&#xff08;事务&#xff09; 六、事务6.1 事务简介6.2 事务操作6.2.1 未控制事务6.2.2 控制事务一6.2.3 控制事务二 6.3 事务四大特性6.4 并发事务问题6.5 事务隔离级别 MySQL— 基础语法大全及操作演示&#xff01;&#xff01;&#xff01…

(java)进程和线程的联系和区别 。Java如何进行多线程编程?Thread 类及常见方法。

目录 进程 1.进程具有独立性 ———— 虚拟地址空间 线程 为什么要引入多个线程&#xff1f; 多线程注意点 ⁜⁜总结&#xff1a;线程和进程的区别和联系⁜⁜ &#xff08;经典面试题&#xff09; Java如何进行多线程编程&#xff1f; 创建线程 ——方法1 继承 Thre…

在本地搭建Jellyfin影音服务器,支持公网远程访问影音库的方法分享

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

prometheus+cadvisor监控docker容器

一、安装cadvisor docker pull google/cadvisor:latest二、运行容器 docker run -d \--volume/:/rootfs:ro \--volume/var/run:/var/run:rw \--volume/sys:/sys:ro \--volume/var/lib/docker/:/var/lib/docker:ro \--publish8088:8080 \--detachtrue \--namecadvisor \--priv…

解释基本的3D理论

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 坐标系 3D 本质上是关于 3D 空间中形状的表示&#xff0c;并使用坐标系来计算它们的位置。 WebGL 使用右侧坐标系 — 轴指向右侧&#xff0c;轴指向上方&#xff0c;轴指向屏幕外&#xff0c;如上图所示。xyz 对象 …

Linux之Shell(一)

Linux之Shell Shell概述Linux提供的Shell解析器bash和sh的关系Centos默认的解析器是bash Shell脚本入门脚本格式第一个脚本脚本常用的执行方式 变量系统预定义变量自定义变量特殊变量$n$#\$*、\$$? 运算符条件判断流程控制(▲)if判断case语句for循环while循环 read读取控制台输…

[SpringBoot3]远程访问@HttpExchange

六、远程访问HttpExchange[SpringBoot3] 远程访问是开发的常用技术&#xff0c;一个应用能够访问其他应用的功能。SpringBoot提供了多种远程访问的技术。基于HTTP协议的远程访问是最广泛的。SpringBoot中定义接口提供HTTP服务。生成的代理对象实现此接口&#xff0c;代理对象实…

matlab使用教程(26)—常微分方程的求解

1.求解非刚性 ODE 本页包含两个使用 ode45 来求解非刚性常微分方程的示例。MATLAB 提供几个非刚性 ODE 求解器。 • ode45 • ode23 • ode78 • ode89 • ode113 对于大多数非刚性问题&#xff0c;ode45 的性能最佳。但对于允许较宽松的误差容限或刚度适中的问题&…

最大子数组和【贪心算法】

最大子数组和 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 class Solution {public int maxSubArray(int[] nums) {//记录最大结果&…

HarmonyOS扫码服务,应用服务一扫直达打造系统级流量新入口

二维码如今是移动应用流量入口以及功能实现的重要工具&#xff0c;也是各App的流量入口&#xff0c;是物、人、服务的连接器&#xff0c;通过扫码我们可以更便捷的生活&#xff0c;更高效的进行信息交互&#xff0c;包括信息的发布、信息的获取。 在日常扫码过程中&#xff0c…

Matlab(基本操作与矩阵输入)

目录 1.Matlab视窗详读 2.基本操作与矩阵输入 2.1 运算符的优先级 2.2 初等数学函数 2.3 嵌入函数 2.4 特殊变量和常量 2.5 Matlab的优先级调用 2.6 数字显示格式长 2.7 命令行中端 2.8 部分函数 2.9 向量和矩阵 2.10 数组索引 2.11 串联矩阵 2.12 生成数值序列 …

智慧景区方案:AI与视频融合技术如何助力景区监管智能化升级?

随着经济的发展&#xff0c;人们对生活的需求也不再局限于温饱层面&#xff0c;越来越多的人们开始追求文化、艺术的高层次需求&#xff0c;旅游也逐渐成为人们日常放松的一种方式。由于我国人口多、易扎堆等特点&#xff0c;景区的运营监管方式也亟需改革。TSINGSEE青犀智能分…

优维产品最佳实践第5期:什么是持续集成?

谈到到DevOps&#xff0c;持续交付流水线是绕不开的一个话题&#xff0c;相对于其他实践&#xff0c;通过流水线来实现快速高质量的交付价值是相对能快速见效的&#xff0c;特别对于开发测试人员&#xff0c;能够获得实实在在的收益。 本期EasyOps产品使用最佳实践&#xff0c…

Android学习之路(11) ActionBar与ToolBar的使用

自android5.0开始&#xff0c;AppCompatActivity代替ActionBarActivity&#xff0c;而且ToolBar也代替了ActionBar&#xff0c;下面就是ActionBar和ToolBar的使用 ActionBar 1、截图 2、使用 2.1、AppCompatActivity和其对应的Theme AppCompatActivity使用的是v7的ActionBa…

【C语言】指针 和 数组 笔试题详解

目录 一、数组 1.一维数组 2.字符数组 3.二维数组 二、指针 笔试题1 笔试题2 笔试题3 笔试题4 笔试题5 笔试题6 笔试题7 笔试题8&#xff08;有难度&#xff09;【看明白会有质的收获】 在这里我们需要先了解数组名的意义 sizeof(数组名) &#xff0c;这里的数组名表示…