day30 日期转换

news2024/11/19 16:52:25

一: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);
            }else
            if (a3 <= 6){
                m.append(a1);
            }else
            if (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转换成Calendar
            Calendar 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.coloradmin.cn/o/955343.html

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

相关文章

项目实践:类平面抓取点计算(占位,后面补充)

文章目录 文章目录&#xff1a;3D视觉个人学习目录微信&#xff1a;dhlddxB站: Non-Stop_

贯穿嵌入式开发的编程语言?

有个朋友和我说嵌入式行业中有没有什么神技巧&#xff0c;所谓的一招鲜吃遍天一般&#xff0c;那还真的有&#xff0c;在嵌入式开发中&#xff0c;C语言是最广泛使用的编程语言之一&#xff0c;覆盖范围几乎涵盖了整个领域。视频后方有免费的嵌入式学习资料&#xff0c;入门和进…

PHP 接入微信支付分

♦ 背景 最近项目中需要接入【微信支付分】的服务&#xff0c; 本文以 【免确认订单模式】&#xff1a;即先享模式&#xff08;评估不通过不可使用服务&#xff09;的使用 在此做一下实现步骤&#xff0c;希望能对小伙伴有所帮助&#xff0c;欢迎指摘 … 实现语言&#xff1a;P…

【NLP】手把手使用PyTorch实现Transformer以及Transformer-XL

手把手使用PyTorch实现Transformer以及Transformer-XL Abstract of Attention is all you need使用PyTorch实现Transformer1. 构建Encoder-Decoder模型1.1 导入依赖库1.2 创建Encoder-Decoder类1.3 创建Generator类 2. 构建Encoder2.1 定义复制模块的函数2.2 创建Encoder2.3 构…

语言基础篇3——学习第一步,Python环境搭建

环境搭建 基础环境搭建 https://www.python.org/downloads/&#xff0c;以Python3.11.5为例&#xff1a; Install for Windows 提供安装程序或者压缩包&#xff0c;安装程序点击下一步即可&#xff0c;压缩包解压即可&#xff0c;注意配置根目录到系统环境变量PATH。 Ins…

uniapp项目实战系列(3):底部导航栏与头部导航栏的配置

目录 系列往期文章&#xff08;点击跳转&#xff09;uniapp项目实战系列(1)&#xff1a;导入数据库&#xff0c;启动后端服务&#xff0c;开启代码托管&#xff08;点击跳转&#xff09;uniapp项目实战系列(2)&#xff1a;新建项目&#xff0c;项目搭建&#xff0c;微信开发工具…

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…

docker 部署springboot(成功、截图)

1.新建sringboot工程并打包 2.编写Dockerfile文件 # 基础镜像使用java FROM openjdk:8 # 作者 MAINTAINER feng # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件&#xff0c;并链接到容器的/tmp VOLUME /tmp # 将jar包添加…

什么是数据丢失防护(DLP)

数据丢失防护 &#xff08;DLP&#xff09; 是一种安全策略&#xff0c;旨在保护企业的关键数据免遭未经授权的用户盗窃、丢失或访问。一个好的 DLP 系统是用于数据发现和分类、数据传输和访问控制、策略和事件管理以及细致的审核和警报的工具的组合。 数据丢失的原因是什么 …

Databricks 入门之sql(二)常用函数

1.类型转换函数 使用CAST函数转换数据类型&#xff08;可以起别名&#xff09; SELECTrating,CAST(timeRecorded as timestamp) FROMmovieRatings; 支持的数据类型有&#xff1a; BIGINT、BINARY、BOOLEAN、DATE 、DECIMAL(p,s)、 DOUBLE、 FLOAT、 INT、 INTERVAL interva…

嵌入式学习之popen函数

相比于system输出的好处&#xff0c;popen可以直接输出运行结果 14.进程总结 需要重点掌握进程配合相关概念&#xff0c;创建进程函数fork的使用&#xff0c;理解进程创建发生了什么事&#xff0c;exec族函数&#xff0c;exec族函数配合fork使用。

2009-2022年商业银行资产利息相关数据

2009-2022年商业银行资产利息相关数据 1、时间&#xff1a;2009-2022年 2、来源&#xff1a;整理自wind 3、指标&#xff1a;利息支出、资产总计、员工总数、固定资产、存款总额、应付职工薪酬、营业支出、营业收入、扣除人员开支后的营业支出 银行&#xff1a;平安银行兰州…

富而喜悦九仔短短10秒的拥抱让百万网友直呼“太可爱!”

现如今网络发展速度非常快&#xff0c;各种各样的走红层出不穷&#xff0c;甚至有很多人都是一夜之间爆红的&#xff0c;出名的速度非常快。近期&#xff0c;在新浪微博的热榜中&#xff0c;有一个富而喜悦九仔的话题横空出世&#xff0c;微博博主富而喜悦外事部小九&#xff0…

取暖器UL1278测试项目及注意事项!!!

UL1278是可移动的挂墙式或吊顶式室内电暖器的标准&#xff0c;适用于额定电压不超过600V的可移动的且挂墙式或吊顶式的电暖器。不适用于固定式电暖器&#xff0c; 管道式电暖器&#xff0c;中心加热的炉。 取暖器UL认证UL1278标准测试项目&#xff1a; 泄露电流试验&#xff…

8月编程排行榜榜首还是它?敬了不起的Python

近日 TIOBE 公布了2023年8月的编程指数信息&#xff0c;跟着战战一起看看排行详情吧~ 全球知名编程社区TIOBE&#xff0c;每月都会公布编程语言的最新变化&#xff0c;8月编程语言排行榜已出&#xff01;话不多说&#xff0c;一起来看看吧&#xff01; TIOBE 8 月 TOP 15 编程…

Plasticine: 面向并行模式的可重配架构

本文基于对并行模式的分层架构、数据局部性和控制流的抽象&#xff0c;提出了Plasticine架构&#xff0c;从而为并行模式计算提供更好的灵活性和更低的能耗支持。原文: Plasticine: A Reconfigurable Architecture For Parallel Patterns 摘要 近年来&#xff0c;由于可重配架构…

深度解读智能媒体服务的重组和进化

统一“顶设”的智能媒体服务。 邹娟&#xff5c;演讲者 大家好&#xff0c;首先欢迎各位来到LVS的阿里云专场&#xff0c;我是来自阿里云视频云的邹娟。我本次分享的主题为《从规模化到全智能&#xff1a;智能媒体服务的重组与进化》。 本次分享分为以上四部分&#xff0c;一是…

可输入的下拉框

项目场景&#xff1a; 问题描述 可以输入的下拉框&#xff0c;在element-ui中 可以找到的是 input 组件 中-带输入建议 的可以达到效果 当是下拉框时&#xff0c;匹配输入的值与下拉框的数据&#xff0c;如果可以匹配&#xff0c;那么就选择那条&#xff0c;如果不能匹配那么&…

Springboot 接口方式硬通知实现 动态刷新配置值,@ConfigurationProperties 、@Value 都可以

前言 看到这个文章标题&#xff0c;也许有的看官就觉得很多余&#xff0c; 因为Nacos 可以设置 NacosValue(value "${XXX}",autoRefreshed true) 实现动态刷新&#xff1b; 又因为cloud config的RefreshScope 实现动态刷新&#xff1b; 还有阿波罗...等 这…

SurfaceFlinger中Binder案例

SurfaceFlinger中Binder案例 1、SurfaceFlinger服务init启动2、SurfaceFlinger服务继承BnSurfaceComposer端2.1 Code标签扩展2.2 Code标签扩展对应调用 3、SurfaceFlinger服务的BpSurfaceComposer端3.1 FWK使用案例3.2 Native使用案例 android12-release 1、SurfaceFlinger服务…