目录
?
?
构造方法 | 说明 |
public Date() | 创建Date对象,表示一个时间 |
public Date(long date) | 创建Date对象,表示指定时间 |
public void setTime(long time) | 设置/修改时间毫秒值 |
public long getTime() | 获取时间对象的毫秒值 |
? ? ? ? 直观看可能有点不理解,那就上代码:
import java.util.Date;
public class dateDemo {
public static void main(String[] args) {
//1、创建一个表示时间的对象
Date d1 = new Date();
//打印结果为系统时间(即电脑上显示的时间)
System.out.println("电脑上显示的时间:");
System.out.println(d1);
//2、创建对象表示个指定的时间
Date d2 = new Date(0L);
//这个0表示从时间结点开始过了0毫秒的时间
System.out.println("过了_时间的输出:");
System.out.println(d2);
//3、setTime()表示修改时间
d2.setTime(1000L);
System.out.println("setTime()的输出:");
System.out.println(d2);
//getTime()获取时间的毫秒对象
long time = d2.getTime();
System.out.println("获取时间的毫秒为:");
System.out.println(time);
}
}
? ? ? ? 运行截图如下:
? ? ? ? ? ? ? ? 1、格式化:把时间变成我们喜欢的格式
? ? ? ? ? ? ? ? 2、解析:把字符串便是的时间变成Date对象
构造方法 | 说明 |
public SimpleDateFormate() | 构造一个类,使用默认格式 |
public SimpleDateFormat(String pattern) | 构造一个类,使用指定格式 |
常用方法 | 说明 |
public final String formate(Date date) | 格式化(日期对象→字符串) |
oublic Date parse(String source) | 解析(字符串→日期对象) |
? ? ? ? ? ? ? ? ? ? ? ? 补:格式化的时间形式的常用的模式对应关系如下
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? y:年? ? ? ? M:月? ? ? ? d:日? ? ? ? H:时? ? ? ? m:分? ? ? ? s:秒(小写!)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? eg.2023-11-11 13:27:06→yyyy-MM-dd HH:mm:ss
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2023年11月11日 13:27:06→yyyy年MM月dd日 HH:mm:ss
? ? ? ? 写个题来练练手:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class simpledateformate {
public static void main(String[] args) throws ParseException {
//1.利用空参构造创建simpleDateFormat对象,默认格式
SimpleDateFormat sdf1 = new SimpleDateFormat();
Date date1 = new Date(0L);
String newDate1 = sdf1.format(date1);
System.out.println(newDate1);
//2.利用带参构造创建simpleDateFormat对象,指定格式
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd月 HH:mm:ss");
String newDate2 = sdf2.format(date1);
System.out.println(newDate2);
//星期可以用E表示
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd月 HH:mm:ss E");
String newDate3 = sdf3.format(date1);
System.out.println(newDate3);
//解析:
//定义一个字符串
String str = "2022.11.11 11:11:11";
//利用空参构造创建simpleDateFormat对象
SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
Date date2 = sdf4.parse(str);
System.out.println(date2);
}
}
? ? ? ? 代码运行结果如下:
提示:大家的运行环境默认格式可能各不一样,知道这个知识点就行
题目:
? ? ? ? 假设:你的出生年月日为:2000-11-11。请用字符串表示这个数据,并将其转换为:2000年11月11日。
? ? ? ? 代码如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class simpledateformateDEMO1 {
public static void main(String[] args) throws ParseException {
/*假设,你的出生年月日为: 2000-11-11
*请用字符串表示这个数据,并将其转换为:2000年11月11日*/
String str = "2000-11-11";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf1.parse(str);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
String date1 = sdf2.format(date);
System.out.println(date1);
}
}
输入结果截图为:
? ? ? ? ? ? ? ? 1、Calendar代表了系统当前时间的日历对象,可以单独修改,获取时间中的年,月,日。
? ? ? ? ? ? ? ? 2、细节:Calendar是一个抽象类,不能直接创建对象
? ? ? ? ? ? ? ? 3、获取Calendar日历类对象的方法
方法名 | 说明 |
public static Calendar getInstance | 获取当前时间的日历对象 |
?
? ? ? ? ? ? ? ? 4、Calendar常用方法
方法名 | 说明 |
public final Date getTime() | 获取日期对象 |
public final setTime(Date date) | 给日历设置日期对象 |
public long getTimeInMills() | 得到时间毫秒值 |
public void setTimeInMills(long mills) | 取日历中的某个字段信息 |
public void set(int field, int value) | 修改日历的某个字段信息 |
public int get(int field) | 取日历中的某个字段信息 |
public void add(int field, int amount) | 为某个字段增加或减少指定值 |
代码及相关注意事项如下:
import java.util.Calendar;
import java.util.Date;
public class CalendarDemo {
public static void main(String[] args) {
//1、获取日历对象
/*细节1:
* Calendar不能直接new,而是通过静态对象(getInstance)来直接获取子类对象
* 细节2:
* 月份:范围:0~11。如果获取出来的是0,那么实际上就是一月
* 星期:在外国人眼里,一周当中的第一天就是星期日。
* 所以1(星期日),2(星期一),3(星期二),4(星期三),5(星期四),6(星期五),7(星期六)
* 底层原理:
* 会根据系统的不同时区来获取不同的日历对象(默认当前时间),会把时间中的纪元,年,月,日,时,分,秒等都放到一个数组当中*/
Calendar c = Calendar.getInstance();
System.out.println(c);
System.out.println("---------------------------------");
//修改日历中的时间
//1、通过date修改
Date d = new Date(0L);
c.setTime(d);
System.out.println(c);
System.out.println("---------------------------------");
//2、通过毫秒值进行修改
Calendar c1 = Calendar.getInstance();
Date time = c1.getTime();
c.setTime(time);
System.out.println(c);
System.out.println("---------------------------------");
//Java在Calendar类中,把索引对应的数字定义为了常量
/* 1,表示年YEAR
* 2,表示月MONTH
* 3,表示一年中的第几周WEEK_OF_YEAR
* 4,表示一个月中当中的第几周WEEK_OF_MONTH
* 5,表示一个月当中的第几天DATE或者DAY_OF_MONTH
* 6,表示一年当中的第几天DAY_OF_YEAR
* 7,表示一周当中的第几天DAY_OF_WEEK*/
int year = c.get(Calendar.YEAR);
//因为月份是0~11所以在原来的基础上+1就是我们看到的日历上的月份了
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DATE);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year + "年" + month + "月" + day + "日" + weekValue(week));
System.out.println("---------------------------------");
//修改日历的方法
c.set(Calendar.YEAR,2000);
int year1 = c.get(Calendar.YEAR);
int month1 = c.get(Calendar.MONTH) + 1;
int day1 = c.get(Calendar.DATE);
int week1 = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year1 + "年" + month1 + "月" + day1 + "日" + weekValue(week1));
}
//定义一个方法,将week值传入,输出星期几
public static String weekValue(int index){
String[] week = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return week[index];
}
}
注:前三条虚线内的内容代码截图如下:
代码总截图如下:
? ? ? ? ? ? ? ? ? ? ? ? 1、Calendar表示一个时间的日历对象。
? ? ? ? ? ? ? ? ? ? ? ? 2、通过getInstance方法后去对象
? ? ? ? ? ? ? ? ? ? ? ? 3、常见方法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? setXxx:修改? ? ? ? getXxx:获取? ? ? ? add:在原有的基础上进行增加或减少
? ? ? ? ? ? ? ? ? ? ? ? 4、细节点:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1·日历中月份的范围:0~11
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2·日历中星期的特点:一周当中的第一天是星期日
?