利用 java.text.SimpleDateFormat类
Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat
类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
它允许进行格式化:日期 -》 文本、解析:文本 -》 日期
格式化:
SimpleDateFormat() :默认的模式和语言环境创建对象
public SimpleDateFormat(String pattern):该构造方法可以用参数pattern , 详情可以在java api中查询 , 最常用的格式为
“yyyy-MM-dd HH:mm:ss” 或者 "yyyy-MM-dd " 样式 。
指定的格式创建一个对象,该对象调用:
public String format(Date date):方法格式化时间对象date
解析:
public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。
举例如下:
解决了字符串与java.sql.Date 之间转换的问题
package DateTest;
import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
//将 “2020-09-08" 转换为 java.sql.Date
public class exer1 {
@Test
public void test() throws ParseException {
String str = "2020-09-08 7:20:10";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定格式化的样式
Date parse = sdf.parse(str);//将字符串转换为java.util.date
java.sql.Date date = new java.sql.Date(parse.getTime());//利用时间戳将java.util.Date转换为java.sql.Date
// System.out.println(parse.toString());
System.out.println("这是util下的date" + sdf.format(parse));//格式化输出java.util.Date
System.out.println("这是sql下的date:" + sdf.format(date));//格式化输出java.sql.Date
}
//举例输入一个日期 , 判断距离1990-01-01时间,每五天一次(三天大雨 , 两天晒网) ,当今是大于还是筛网
@Test
public void test3() throws ParseException {
String datebase = "1990-01-01" ;
String d2 = "1990-01-02" ;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date2 = sdf.parse(d2);
Date datebase = sdf.parse(datebase);
long tbase = date2.getTime() - datebase.getTime() ; //获取每天的毫秒数
String d3 = "2021-09-20" ;
Date date3 = sdf.parse(d3);
long time = date3.getTime() - date2.getTime() ; //距离 1990-01-01的时间
long day = time / tbase + 1 ;
if(day % 5 ==0 || day % 5 == 4)
{
System.out.println("两天晒网");
}
else
System.out.println("三天打鱼");
}
}



