目录
案例:日期工具类
需求:定义一个日期工具类(DateUtils),包含两个方法:1.把日期转换为指定格式的字符串;2.把字符串解析为指定格式的日期,然后定义一个测试类(DateDemo),测试日期工具类的方法。
思路:
- 定义日期工具类(DateUtils)
- 在工具类里定义第一个方法(dateToString),用于把日期转换为指定格式的字符串:
返回值类型:String
参数:Date date,String format
- 在工具类里定义第二个方法(stringToDate),用于把字符串解析为指定格式的日期
返回值类型:Date
参数:String s,String format
- 定义一个测试类,在测试类中调用方法。
程序演示:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
工具类:
构造方法私有
成员方法静态
(直接通过类名调方法)
*/
public class DateUtils {
//构造方法
private DateUtils() {
}
/*
把日期转为指定格式的字符串
返回值类型:String
参数:Date date,String format(传递的String参数用于指定日期的转换格式)
*/
public static String dateToString(Date date,String format){
//使用SimpleDateFormat将传进来的日期转换为指定格式的字符串
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
String format1 = simpleDateFormat.format(date);
return format1;
}
/*
把字符串解析为指定格式的日期
返回值类型Date
参数:String s,String format
*/
public static Date stringToDate(String s,String format) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
Date parse = simpleDateFormat.parse(s);
return parse;
}
}
/*
需求:
思路:
① 定义日期工具类(DateUtils)
② 在工具类里定义第一个方法(dateToString),用于把日期转换为指定格式的字符串:
返回值类型:String
参数:Date date,String format
③ 在工具类里定义第二个方法(stringToDate),用于把字符串解析为指定格式的日期
返回值类型:Date
参数:String s,String format
④ 定义一个测试类,在测试类中调用方法。
*/
class DateDemo {
public static void main(String[] args) throws ParseException {
//创建日期对象,获取当前时间戳
Date date = new Date();
//使用字符串指定日期格式
String format = "yyyy-MM-dd HH:mm:ss";
//创建DateUtils类对象调用method方法
String s = DateUtils.dateToString(date,format);
System.out.println(s);//2022-06-13 16:49:24
String s1 = DateUtils.dateToString(date, "yyyy年MM月dd日");
System.out.println(s1);//2022年06月13日
System.out.println("===================");
//调用parse方法
Date date1 = DateUtils.stringToDate(s,format);
System.out.println(date1);//Mon Jun 13 16:49:24 CST 2022
}
}
案例:二月天
需求:获取任意一年的二月有多少天
思路:
- 键盘录入任意的年份,
- 设置日历的修年月日:
- 年:来自于键盘录入
- 月:设置为3月,月份是从0开始的,所以设置的值是2
- 日:设置为1
- 3月1日往前推一天,就是2月的最后一天
- 输出获取的结果即可。
程序演示:
import java.util.Calendar;
import java.util.Scanner;
/*
需求:获取任意一年的二月有多少天
*/
public class CalendarDemo {
public static void main(String[] args) {
System.out.print("请输入任意年份:");
//采用键盘录入年份
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();
//获取日历对象
Calendar instance = Calendar.getInstance();
//给日历字段定值,我们获取的3月那就定值为2
instance.set(year, 2, 1);//月份要-1
//切记一定要用add做减法不要在变量上面做减法,使用add做减法日期会动态更新,对变量做减法则不会
instance.add(Calendar.DATE, -1);
int date = instance.get(Calendar.DATE);
System.out.println(year + "年2月共有" + date + "天");
}
}
--欢迎大家与我一起交流java知识