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.mzph.cn/news/68328.shtml

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

相关文章

【力扣每日一题】2023.9.4 序列化和反序列化二叉搜索树

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一棵搜索二叉树&#xff0c;要我们将这棵二叉树转变为字符串&#xff0c;同时我们需要根据字符串再变回二叉树&#xff0c;具体…

Linux之虚拟主机功能

目录 虚拟主机功能 概述 基于 IP 地址的虚拟主机 原理 案例 --- 增加多个IP地址&#xff0c;实现基于不同IP地址的虚拟主机功能 基于端口号的虚拟主机 原理 案例 --- 基于不同端口号的虚拟主机 基于域名的虚拟主机 原理 域名解析 案例 --- 使用2个域名建立虚拟主机网…

Mysql 高阶语句

高阶语句 对 MySQL 数据库的查询&#xff0c;除了基本的查询外&#xff0c;有时候需要对查询的结果集进行处理&#xff1b; 例如只取 10 条数据、对查询结果进行排序或分组等&#xff0c;来获取想要有用的数据 无非还是对于MySQL —— 增、删、改、查 的操作 升降序 SELECT…

基于单片机的万年历温度无线传输控制系统系统

一、系统方案 本设计采用DS1302采集年月日时分秒&#xff0c;DS18B20采集温度值&#xff0c;按键设置温度报警上下限&#xff0c;实际测量温度低于下限或高于上限&#xff0c;蜂鸣器报警&#xff0c;同时将测量温度上传到蓝牙助手。 二、硬件设计 原理图如下&#xff1a; 三…

R语言图形的组合( par(),layout(),par(fig()) )

引入d.class进行画图 > d.class<-read.csv("D://class.csv",header T) > attach(d.class) > opar<-par(no.readonly TRUE)非常简单的数据&#xff0c;需要可自取 链接&#xff1a;https://pan.baidu.com/s/1zNx5z9JsaaRqFueRgGY3mQ 提取码&#x…

3D开发工具HOOPS Publish如何快速创建交互式3D PDF文档?

HOOPS Publish是一款功能强大的SDK&#xff0c;可以创作丰富的工程数据并将模型文件导出为各种行业标准格式&#xff0c;包括PDF、STEP、JT和3MF。HOOPS Publish核心的3D数据模型是经过ISO认证的PRC格式(ISO 14739-1:2014)&#xff0c;它为装配树、拓扑和几何、产品制造信息和视…

Seata1.5.2+Nacos分布式事务环境搭建详解

文章目录 一、下载seata server二、配置application.yml三、初始Mysql数据库四、导入初始配置到nacos五、启动测试 本文以seata-server-1.5.2&#xff0c;以配置中心、注册中心使用Nacos&#xff0c;store.modedb&#xff08;mysql&#xff09;为例进行操作。 Seata简介及入门参…

[深度学习]1. 深度学习知识点汇总

本文记录了我在学习深度学习的过程中遇到过的不懂的知识点&#xff0c;为了方便翻阅&#xff0c;故将其发表于此&#xff0c;随时更新&#xff0c;供大家参考。 深度学习常见知识点 1. 测试精度和训练精度 在深度学习中&#xff0c;测试精度和训练精度是两个重要的指标&#…

【zip密码】zip压缩包删除密码方法

Zip压缩包设置设置了密码&#xff0c;想要删除密码&#xff0c;除了将压缩包解压出来之后再将文件压缩为不带密码的压缩文件以外&#xff0c;还有一种删除密码的方法。设置方法如下&#xff1a; 右键点击zip文件&#xff0c;找到打开方式&#xff0c;以Windows资源管理器方式打…

VBA技术资料MF52:VBA_在Excel中突出显示前 10 个值

【分享成果&#xff0c;随喜正能量】一言之善&#xff0c;重于千金。善良不分大小&#xff0c;有时候你以为的一句话&#xff0c;小小的举手之劳&#xff0c;也可能就是别人的救赎&#xff01;不要吝啬你的善良&#xff0c;因为你永远不知道那小小的善良能给多少人带来光明。。…

【 ARMv9 Cluster BUS QoS 配置】

文章目录 ARM Cluster QoS ARM Cluster QoS QoS&#xff08;Quality of Service&#xff0c;服务质量&#xff09;在 ARM 架构中&#xff0c;主要指的是一种机制&#xff0c;它可以控制和管理系统资源&#xff08;如内存、总线带宽等&#xff09;的使用&#xff0c;以满足各种…

Cyber RT学习---5.Cyber RT通信机制解析与实践

5.Cyber RT通信机制解析与实践 5.1 通信机制简介 5.1.1 话题通信 模式&#xff1a; 以发布订阅的方式实现不同节点之间数据交互的通信模式。 如图1-1所示&#xff0c;Listener-Talker通信首先创建了两个Node&#xff0c;分别是Talker Node和 Listener Node。 每个Node实例化…

【B树 B+树】B树、B+树理论

目录 引入B树B树定义和性质m阶B树核心特性 B树B树的查找 引入B树 满足上面两个策略就是B树&#xff1a; m 叉查找树中&#xff0c;规定除了根节点外&#xff0c;任何结点至少有 ⌈ m / 2 ⌉ \lceil m/2 \rceil ⌈m/2⌉ 个分叉&#xff0c;即至少含有 ⌈ m / 2 ⌉ \lceil m/2 \…

Python爬虫——新手使用代理ip详细教程

Python代理IP爬虫是一种可以让爬虫拥有更多网络访问权限的技术。代理IP的作用是可以为爬虫提供多个IP地址&#xff0c;从而加快其爬取数据的速度&#xff0c;同时也可以避免因为访问频率过高而被网站封禁的问题。本文将介绍如何使用Python实现代理IP的爬取和使用。 一、代理IP的…

RHCA之路---EX280(10)

RHCA之路—EX280(10) 1. 题目 On master.lab.example.com install the OpenShift Mertics component with the following requirements: Use the storage /exports/metrics for cassandra storage. You can use the files on http://materials.example.com/exam280/storage fo…

海康威视二次开发适配安卓电视盒子

收到一个需求&#xff0c;需要在安卓电视盒子上适配海康威视摄像头视频&#xff1a; 1.类似电视家app界面&#xff0c;左边滑动菜单显示通道列表、设置按钮&#xff0c;遥控器呼出菜单。 2.遥控器操作&#xff1a;切换视频通道、云台上下左右控制、缩放等。 3.服务器域名、用…

FPGA输出lvds信号点亮液晶屏

1 概述 该方案用于生成RGB信号&#xff0c;通过lvds接口驱动逻辑输出&#xff0c;点亮并驱动BP101WX-206液晶屏幕。 参考&#xff1a;下面为参考文章&#xff0c;内容非常详细。Xilinx LVDS Output——原语调用_vivado原语_ShareWow丶的博客http://t.csdn.cn/Zy37p 2 功能描述 …

RabbitMQ的安装和配置

将RabbitMQ文件夹传到linux根目录 开启管理界面及配置

【VSCode】文件模板创建及使用.md

背景 最近使用VSCode学习Vue项目比较频繁&#xff0c;每次创建Vue文件都要手动写重复代码&#xff0c;特别麻烦&#xff0c;就上网查找自动生成代码的说明&#xff0c;结果发现VSCode有代码模板&#xff0c;怪怪&#xff0c;感觉发现新大陆了(low!)。 配置 打开配置 方式一&a…

手机电脑scoket通信 手机软件 APP inventor 服务端程序python

python scoket 通信 再帮助同学坐课题的时候接触到了scoket通信&#xff0c;了解到这应该是基层网络通信的原理&#xff0c;于是就导出搜索了一下相关的资料&#xff0c;简单来说scoket通信就是&#xff0c;可以让不同设备在同一个网络环境的条件下&#xff0c;可以实现相互通…