data
包名:import java.util.date;
import java.util.date;
public class test {
public static void main(string[] args) {
date date = new date();
system.out.println(date);//sun jul 31 18:49:48 cst 2022
system.out.println(date.tostring());//sun jul 31 18:49:48 cst 2022
system.out.println(date.togmtstring());//31 jul 2022 10:49:48 gmt
system.out.println(date.tolocalestring());//2022-7-31 18:51:11
system.out.println(date.getyear());//显示的时间 1900为现在的年份
system.out.println(date.getmonth());//注意这里的月份在0-11之间,0表示1月
system.out.println(date.gettime());//返回在1970年1月1日0点00分00秒到现在的毫秒数
}
}
包名:import java.sql.date;
import java.sql.date;
public class test1 {
public static void main(string[] args) {
//注意:里面没有提供空构造器
date date = new date(system.currenttimemillis());
system.out.println(date);//2022-07-31
system.out.println(date.togmtstring());//31 jul 2022 11:19:54 gmt
//以下相同
}
}
import java.util.date包和import java.sql.date包的区别
- import java.util.date:里面提供了年月日,时分秒;import java.sql.date:里面仅有年月日
- import java.sql.date(子类)继承了import java.util.date(父类)
import java.sql.date和import java.util.date之间的相互转换
util转sql以及string转sql
import java.sql.date;
public class test1 {
public static void main(string[] args) {
//util转sql
java.util.date date =new date(system.currenttimemillis());//util
//向下转型
date date3 = (date) date;
system.out.println(date3);
//利用构造器
date date1 = new date(date.gettime());
system.out.println(date1);
//string类型转sql
date date2 = date.valueof("2019-3-8");
system.out.println(date2);
}
}
sql转util与string转util
import java.sql.date;
public class test1 {
public static void main(string[] args) {
//sql转util
date date = new date(system.currenttimemillis());
//父类引用指向子类对象
java.util.date data1=date;
system.out.println(data1);
//string转util
//1.将string转sql(里面传入的字符串格式只能是下面格式)
date date1 = date.valueof("2015-3-7");
//2.将sql转util
java.util.date data11 = data1;
system.out.println(data11);
}
}
作用:实现string与date之间的相互转换(以自定义格式)
注意:dateformat为抽象类,其不可以直接创建对象,我们可以用其子类simpledateformat
日期格式
string转date
//日期转换
//string(任意格式)转date
dateformat dateformat = new simpledateformat("yyyy:mm:dd hh-mm-ss");//潇洒格式
//string转date(此string格式要和定义的格式匹配,因为是以特定的格式进行解析)
date parse = dateformat.parse("2019:7:9 12-45-54");
//以特定的格式打印
system.out.println(parse.tolocalestring());
date转string
//date转string
dateformat dateformat = new simpledateformat("yyyy:mm:dd hh-mm-ss");
string format = dateformat.format(new date());
//将当前日期以上面确定的格式转化为字符串
system.out.println(format);//2022:07:31 20-27-59
注意:calendar为抽象类,其不可以直接创建对象,我们可以用其子类gregoriancalendar
创建对象
//创建对象方式
calendar calendar = new gregoriancalendar();//方式1
calendar instance = calendar.getinstance();//方式2
system.out.println(calendar "" instance);//超长数组,信息全面
获取或改变日期信息
//获取日期信息(get方法)
calendar calendar = new gregoriancalendar();//方式1
system.out.println(calendar.get(calendar.year));//获取年份
system.out.println(calendar.get(calendar.month));//获取月份
system.out.println(calendar.get(calendar.date));//获取日
system.out.println(calendar.get(calendar.hour));//获取小时
system.out.println(calendar.get(calendar.minute));//获取分钟
system.out.println(calendar.get(calendar.second));//获取秒钟
system.out.println(calendar.get(calendar.day_of_week));//获取一个星期的第几天(国外周日是一星期的第一天)
system.out.println(calendar.getactualmaximum(calendar.date));//得到日期的最大天数
system.out.println(calendar.getactualminimum(calendar.date));//得到日期的最小天数
//set方法,可以改变calendar的内容
calendar.set(calendar.year, 1999);
calendar.set(calendar.month, 6);
calendar.set(calendar.date, 16);
system.out.println(calendar);
string与calendar的转化
calendar calendar = new gregoriancalendar();//方式1
//string转calendar
//先转化为sql
date date = date.valueof("2020-4-5");
//sql转calendar
calendar.settime(date);
system.out.println(calendar.get(calendar.year));
system.out.println(calendar.get(calendar.month));
system.out.println(calendar.get(calendar.date));
- 可变性:像日期、时间这样的类应该是不可变的
- 偏移性:date中的年份是从1900开始的,而月份都是从0开始的
- 格式化:dateformat格式化只对date有用calendar不行
创建对象
//创建对象
//方法1——now()
localdate localdate = localdate.now();
system.out.println(localdate);//2022-07-31
localtime localtime = localtime.now();
system.out.println(localtime);//21:56:16.739
localdatetime localdatetime = localdatetime.now();
system.out.println(localdatetime);//2022-07-31t21:56:16.739
//方法2——of()[创建指定日期/时间对象]
localdate localdate1 = localdate.of(2012, 3, 8);
system.out.println(localdate1);//2012-03-08
localtime localtime = localtime.of(12, 35, 56);
system.out.println(localtime);//12:35:56
localdatetime localdatetime1 = localdatetime.of(2012, 3, 8, 12, 35, 56);
system.out.println(localdatetime1);//2012-03-08t12:35:56
获取或设置日期时间
//localdatetime用的比较多
localdatetime localdatetime = localdatetime.now();
system.out.println(localdatetime);//2022-07-31t22:7:53.808
//get方法获取
system.out.println(localdatetime.getyear());//2022
system.out.println(localdatetime.getmonth());//july
system.out.println(localdatetime.getmonthvalue());//7
system.out.println(localdatetime.getdayofmonth());//31
system.out.println(localdatetime.getdayofweek());//sunday
system.out.println(localdatetime.gethour());//22
system.out.println(localdatetime.getminute());//7
system.out.println(localdatetime.getsecond());//53
//with方法(set)方法
localdatetime localdatetime2 = localdatetime.withmonth(8);
system.out.println(localdatetime);//2022-07-31t22:15:07.451(以前的都没变)
system.out.println(localdatetime2);//2022-08-31t22:15:07.451
日期的加减操作
//localdatetime用的比较多
localdatetime localdatetime = localdatetime.now();
system.out.println(localdatetime);//2022-07-31t22:7:53.808
//提供了加减的操作
localdatetime localdatetime3 = localdatetime.plusmonths(4);//加月份操作
system.out.println(localdatetime3);//2022-11-30t22:17:28.808
localdatetime localdatetime4 = localdatetime.minusmonths(3);
system.out.println(localdatetime4);//2022-04-30t22:19:21.591
作用:实现字符串和日期的互转
方式1:预定义标准格式
语法:
- datetimeformatter.iso_local_date_time
- datetimeformatter.iso_local_date
- datetimeformatter.iso_local_time
localdatetime与string类型相互转化
datetimeformatter df1 = datetimeformatter.iso_local_date_time;
//df1可以帮助我们完成localdatetime与string类型之间的转化
//localdatetime转string
localdatetime localdatetime = localdatetime.now();
string format = df1.format(localdatetime);
system.out.println(format);//2022-07-31t22:30:42.308
//string转localdatetime
temporalaccessor parse = df1.parse("2022-07-31t22:30:42.308");
system.out.println(parse);//{},iso resolved to 2022-07-31t22:30:42.308
方式2:本地化相关格式
语法:datetimeformatter.oflocalizeddatetime(参数)
参数格式
- formatstyle.long:2022年7月31日 下午10时39分58秒
- formatstyle.medium:2022-7-31 10:39:58
- formatstyle.short:22-7-31 下午10:44
localdatetime与string类型相互转化
//localdatetime和string转化
datetimeformatter df2 = datetimeformatter.oflocalizeddatetime(formatstyle.long);
localdatetime dt = localdatetime.now();
//localdatetime转string
string format1 = df2.format(dt);
system.out.println(format1);//2022年7月31日 下午10时39分58秒
//string转localdatetime
temporalaccessor parse1 = df2.parse("2000年8月31日 下午10时39分47秒");
system.out.println(parse1);//{},iso resolved to 2000-08-31t22:39:47
方式3:自定义格式。
语法:datetimeformatter.ofpattern("自定义格式")
localdatetime与string类型相互转化
datetimeformatter df3 = datetimeformatter.ofpattern("yyyy:mm:dd hh-mm-ss");
localdatetime now = localdatetime.now();
//string转localdatetime
string format2 = df3.format(now);
system.out.println(format2);//2022:07:31 10-54-37
//localdatetime转string
temporalaccessor parse2 = df3.parse("2022:07:31 10-54-37");
system.out.println(parse2);