java基础回顾-day18(String&时间格式)

本文回顾了Java中的自动装箱和拆箱概念,深入探讨了Date类及其构造方法,以及如何使用SimpleDateFormat进行日期和时间的格式化和解析。通过案例展示了如何在手机上显示日期和时间,以及如何实现考勤查询功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自动装箱和拆箱

  • 装箱:把基本数据类型转换为对应的包装类类型
  • 拆箱:把包装类类型转换为对应的基本数据类型

Date和SimpleDateFormat

  • Date类表示特定的时刻,精度为毫秒
    构造方法
  • Date():分配Date对象并对其进行初始化。使其表示分配时间,测量Date到毫秒。
  • Date(long date):分配Date对象并初始化它以表示自标准基础时间以来的指定毫秒数,即1970年1月1日00:00:00
    simpleDateFormat
  • SimpleDateFormat 是一个用于以区域设置敏感的方法格式化和解析日期的具体类。重点学习日期格式化和解析。
  • 日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从‘A’到‘Z‘以及从’a‘到’z‘引号的字母被解释为表示日期或时间字符串组成部分的模式字母。
  • 常见的模式字母对应关系
  • 举例:2021年10月27日 11:11:11
  • 模式:yyyy年MM月dd日 HH:mm:ss
字母对应日期
y
M
d
H
m
s

构造方法

  • SimpleDateFormat():构造一个SimpleDateFormat,使用默认模式和日期格式
  • SimpleDateFormat(String pattern):构造一个SimpleDateFormat使用给定的模式和默认的日期格式
    格式化(从Date到String)
  • String format(Date date):将日期格式化成日期/时间字符串
    解析(从String到Date)
  • Date parse(String source):从给定字符串的开始解析文本以生成日期。

案例:手机日期和时间显示

  • 如图示
    在这里插入图片描述

  • 代码实现

package com.itheima_02;

import javax.swing.*;
import java.text.SimpleDateFormat;
import java.util.Date;

/*手机日期的时间显示*/
public class ShoDateTimeTest {
    public static void main(String[] args) {
//        创建窗体
        JFrame jf = new JFrame();
        jf.setTitle("手机和时间显示");
        jf.setSize(400,300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);
//        提示日期
        JLabel dateLables = new JLabel("日期");
        dateLables.setBounds(50, 50, 100, 20);
        jf.add(dateLables);
//        创建当前系统时间
        Date d = new Date();
//        获取时间模式字符串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd月");
//        将日期格式化为日期/时间字符串
        String dateString = sdf.format(d);
//        按照格式显示时间字符串
        JLabel showDateLable = new JLabel(dateString);
        showDateLable.setBounds(50,80,200,20);
        jf.add(showDateLable);
//        显示时间
        JLabel showDateTime = new JLabel("时间");
        showDateTime.setBounds(50,150,100,20);
        jf.add(showDateTime);
//        获取时间字符串
        SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm");
        String timeString =sdf2.format(d);
//        按照格式显示时间字符串
        JLabel showTimeLable = new JLabel(timeString);
        showTimeLable.setBounds(50,180,200,20);
        jf.add(showTimeLable);
        jf.setVisible(true);
    }
}

案例二:考勤查询实现在这里插入图片描述

在这里插入图片描述

  • 代码实现
package com.itheima_02;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class AttendanceQueryTest {
    public static void main(String[] args) {
//        创建窗体对象
        JFrame jf = new JFrame();
        jf.setTitle("考勤查询");
        jf.setSize(400,300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);
//        显示考勤日期
        JLabel dateLable = new JLabel("考勤日期");
        dateLable.setBounds(50,20,100,20);
        jf.add(dateLable);
//        显示开始时间
        JLabel startLable = new JLabel("开始时间");
        startLable.setBounds(50,70,100,20);
        jf.add(startLable);
//        实例画日期组件
        DateChooser dateChooser1 = DateChooser.getInstance("yyyy/MM/dd");
        DateChooser dateChooser2 = DateChooser.getInstance("yyyy/MM/dd");
//        显示输入文本框
        JTextField startField = new JTextField();
        startField.setBounds(50,100,100,20);
        dateChooser1.register(startField);
        jf.add(startField);
//        显示结束时间
        JLabel endLable = new JLabel("结束时间");
        endLable.setBounds(250,70,100,20);
        jf.add(endLable);

//      显示结束文本框
        JTextField endField = new JTextField();
        endField.setBounds(250,100,100,20);
        dateChooser2.register(endField);
        jf.add(endField);
//        确定按钮
        JButton confirmButtton = new JButton("确定");
        confirmButtton.setBounds(170,180,60,20);
        jf.add(confirmButtton);
//        设置按钮监听事件
        confirmButtton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
//              获取开始时间结束时间的字符串
                String startString =startField.getText();
                String endString =endField.getText();
                try {
                    Date startDate = sdf.parse(startString);
                    Date endDate = sdf.parse(endString);
                    JOptionPane.showMessageDialog(jf,startDate+"\n"+endDate);
                } catch (ParseException ex) {
                    ex.printStackTrace();
                }
            }
        });
        jf.setVisible(true);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值