2023/4/5使用String类,Date类

One:
学习
循环套用。
矩形,直角三角形,金字塔问题,空心金字塔。

package com.doit.day11.Demo01;

public class Sanjiao {
    public static void main(String[] args) {
        //打印直角三角形
        int t = 10;     //表示层数
        for (int i = 1; i <=5; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("-----------------------------");
        //打印金字塔
        for (int i = 1; i <=5; i++) {
            for (int k = 1; k <= 5-i; k++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= 2*i-1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("----------------------------");
        //打印空心金字塔
        for (int i = 1; i <=t; i++) {
            //i 表示行  , j表示列
            for (int k = 1; k <= t-i; k++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= 2*i-1; j++) {
                if (j == 1 || j == i*2-1 || i==t) {
                    System.out.print("*");
                }else {
                    System.out.print(" ");
                }

            }
            System.out.println();
        }
        System.out.println("-------------------------");
    }
}

//学习逻辑思路。

2.。
String 类中的StringBuilder:

package com.doit.day12.Demo01;

public class Test01 {
    public static void main(String[] args) {
        int[] arr = {3, 8, 2, 5, 0};
        //Array(arr);
        String s = Array(arr);
        System.out.println(s);
    }
    public static String  Array ( int[] arr){
        StringBuilder sb = new StringBuilder("[");

        for (int i = 0; i < arr.length; i++) {
            sb.append(arr[i]);
            if (i == arr.length-1) {
                sb.append("]");
            }else{
                sb.append(",");
            }
        }
        return sb.toString();
    }
}
//输出结果为字符串型[3,8,2,5,0]

3.。
Date 时间日期类

package com.doit.day12.Demo01;

import java.util.Date;

/*
*java.util.Date 日期类
* 时间原点:1970年1月1日 00:00:00
* 一秒等于1000毫秒
* 构造方法:
*        public Date () 当前日期对象
*        public Date (long time) 指定毫秒值的日期对象
*
*  */
public class Test02 {
    public static void main(String[] args) {
        //当前时间对象
        Date now = new Date();
        System.out.println(now);
        //从时间原点到  当前时间经过的  毫秒值
        long time = now.getTime();
        System.out.println(time);
        //时间原点
        now.setTime(0);
        System.out.println(now);

    }

}

补充:时间为啥是1970年1月1日00:00:00,
UNIX操作系统诞生于1969年,考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间。

4. 日期生日,计算存活天数

package com.doit.day12.Demo01;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;



public class Test04 {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的生日(yyyy-MM-dd):");
        String sdate = sc.nextLine();
        int day =  sum(sdate);
        System.out.println(day);
    }

    public static int sum(String sdate) throws ParseException {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date birthDay = df.parse(sdate);
        //获取生日值的毫秒
        long birthTime = birthDay.getTime();
        long nowTime = new Date().getTime();
        int day = (int)((nowTime - birthTime)/1000/3600/24);
        return  day;
    }
}

5、

package com.doit.day12.Demo01;

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class Demo06 {
    public static void main(String[] args) {
       //创建日历对象
        Calendar c = Calendar.getInstance();
//        //将日历设置为2000年5月1日  现在是2023年4月5日
//        c.add(Calendar.YEAR,-23);
//        c.add(Calendar.MONTH,1);
//        c.add(Calendar.DATE,-4);

        //不同表达方式2000年5月1日
//        c.set(Calendar.YEAR,2000);
//        c.set(Calendar.MONTH,4);
//        c.set(Calendar.DATE,1);

        c.set(2000,4,1);    //直接输入在set中也可行
        //将日历转换为日期对象
        Date time = c.getTime();
        System.out.println(time);
            //时区
        TimeZone timeZone = c.getTimeZone();
        System.out.println(timeZone);
        

    }
}

6、Date

java.util.Date类 表示特定的瞬间,精确到毫秒。1000毫秒等于1秒。

Date类构造方法

  • public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

  • public Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

    public static void main(String[] args) {
    // 创建日期对象,把当前的时间
    System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2020
    // 创建日期对象,把当前的毫秒值转成日期对象
    System.out.println(new Date(0)); // Thu Jan 01 08:00:00 CST 1970
    }

Date类的常用方法

  • public long getTime() 把日期对象转换成对应的时间毫秒值。

  • public void setTime(long time) 把方法参数给定的毫秒值设置给日期对象。

    public static void main(String[] args) {
    //创建日期对象
    Date date = new Date();
    //public long getTime()获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
    System.out.println(date.getTime());
    //public void setTime(long time):设置时间,给的是毫秒值
    date.setTime(0);
    System.out.println(date);
    }

日期对象和毫秒值的相互转换

日期是不能进行数学计算的,但是毫秒值可以,在需要对日期进行计算时,可以现将日期转成毫秒值后在进行计算。

  • 日期对象转成毫秒值:
    • Date date = new Date(); date.getTime()
    • System.currentTimeMillis()
  • 毫秒值转成日期对象:
    • Date date = new Date(long 毫秒值)
    • date.setTime(long 毫秒值)

DateFormat类

java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。

  • 格式化:按照指定的格式,把Date对象转换为String对象。
  • 解析:按照指定的格式,把String对象转换为Date对象。

构造方法

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:

  • public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。

参数pattern是一个字符串,代表日期时间的自定义格式。

常用的格式规则为:

标识字母(区分大小写) 含义
y 年
M 月
d 日
H 时
m 分
s 秒

备注:更详细的格式规则,可以参考SimpleDateFormat类的API文档。

转换方法

  • String format(Date date)传递日期对象,返回格式化后的字符串。

  • Date parse(String str)传递字符串,返回日期对象。

    public static void main(String[] args) throws ParseException {
    //格式化:从 Date 到 String
    Date d = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss”);
    String s = sdf.format(d);
    System.out.println(s);
    System.out.println(“--------”);

       //从 String 到 Date
       String ss = "2048-08-09 11:11:11";
       //ParseException
       SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       Date dd = sdf2.parse(ss);
       System.out.println(dd);
      }
    

Calendar日历类

概念:
日历我们都见过
java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。

日历对象获取方式

Calendar是抽象类,不能创建对象,需要使用子类对象。java.util.GregorianCalendar类是Calendar的子类,但是创建日历对象需要根据本地的时区,语言环境来创建,比较困难,Calendar类提供了静态方法 getInstance()直接获取子类的对象。

public static Calendar getInstance():使用默认时区和语言环境获得一个日历。

Calendar cal = Calendar.getInstance();

常用方法

  • public int get(int field):返回给定日历字段的值。
  • public void set(int field, int value):将给定的日历字段设置为给定值。
  • public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  • public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

日历字段

Calendar类中提供很多静态成员,直接类名调用,代表给定的日历字段:

字段值 含义
YEAR 年
MONTH 月(从0开始,可以+1使用)
DAY_OF_MONTH 月中的天(几号)
HOUR 时(12小时制)
HOUR_OF_DAY 时(24小时制)
MINUTE 分
SECOND 秒
DAY_OF_WEEK 周中的天(周几,周日为1,可以-1使用)

Two:

加强:
String类,Date类,学习方法和记忆一些常用的格式。

Three:

天气:晴,有微风
心情:畅快,

Four:

期望:老师教的都会就好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值