java--System类、Date类、SimpleDateFormat类、Calendar类

一时失言乱红尘 2022-04-22 05:42 537阅读 0赞

System类、Date类、SimpleDateFormat类、Calendar类

System类

  System类包含一些有用的类字段和方法,并且它不能被实例化。






















常用方法
public static void gc() 调用垃圾回收器
public static void exit(int status) 退出java虚拟机,0为正常退出,非0为异常退出
public static long currentTimeMillis() 获取当前时间的毫秒值

注:垃圾回收器并不是一调用就会马上执行的,因为程序中的部分代码还可能要用,因此还要等这部分代码结束。

Date类

  类Date表示特定的瞬间,精确到毫秒,它在java.util包下。

















构造方法
public Date() 实例化一个日期对象
public Date(long date) 把一个long类型的毫秒值转换成一个日期对象
















常用方法
public long getTime() 获取一个日期对象对象毫秒值
public void setTime(long time) 给一个日期对象设置上指定的毫秒值

SimpleDateFormat类

  可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象,它在 java.text包下。

















构造方法
public SimpleDateFormat() 使用默认的模式来创建一个SimpleDateFormat对象
public SimpleDateFormat(String pattern) 使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
















常用方法
public String format(Date date) 把一个日期对象格式化成一个字符串
public Date parse(String dateStr) 把一个日期字符串解析成一个日期对象
注意:要以指定格式解析




































































规则定义
y
M
d 月份中的天数
h 一天中的小时数(1~12)
H 一天中的小时数(0~23)
m
s
F 月份中的星期
W 月份中的周数
w 年中的周数
D 年中的天数
E 星期中的天数
a Am/pm 标记
z 时区
Z 时区

Calendar类

  Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR ,等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法,它在java.util包下。

















常用方法
public static Calendar getInstance() 使用默认时区和语言环境获得一个日历对象
public int get(int field) 获得给定日历字段对应的值,field通过Calendar提供的字段来拿

代码演示

1、获取指定的日期与今天相距多少天

  1. import java.util.Scanner;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. public class Day {
  6. public static void main(String[] args) throws ParseException {
  7. Scanner sc = new Scanner(System.in);
  8. System.out.println("请日期 格式如2010-11-25:");
  9. String bir = sc.nextLine();
  10. //SimpleDateFormat指定日期格式
  11. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  12. //把按日期格式输入的字符串转变为日期类型
  13. Date date = format.parse(bir);
  14. //获得转变成日期格式的字符串的毫秒值
  15. long time = date.getTime();
  16. //获取当前的毫秒值
  17. long now = System.currentTimeMillis();
  18. //因为相减的是毫秒值要把它转变为天数所以要进行计算
  19. System.out.println("指定的日期与今天相距" + (now - time) / 1000 / 60 / 60 / 24 + "天");
  20. }
  21. }

结果

  1. 请日期 格式如2010-11-25:
  2. 2018-10-31
  3. 指定的日期与今天相距2

2、键盘录入任意一个年份,获取任意一年的二月有多少天

  1. import java.util.Calendar;
  2. import java.util.Scanner;
  3. public class Day {
  4. public static void main(String[] args) {
  5. Scanner sc = new Scanner(System.in);
  6. System.out.println("请输入年份:");
  7. int y = sc.nextInt();
  8. //获取 Calendar 对象
  9. Calendar in = Calendar.getInstance();
  10. //设置年月日,设置成3月1日,因为在这里月份是从0开始的,因此月设置成2
  11. in.set(y,2,1);
  12. //每一个月的3月1号减去1就是二月了,这样我们就可以获得二月的天数了
  13. in.add(Calendar.DAY_OF_MONTH,-1);
  14. //获得二月的天数,DAY_OF_MONTH是Calendar的字段
  15. int i = in.get(Calendar.DAY_OF_MONTH);
  16. System.out.println(y+"年二月有"+i+"天");
  17. }
  18. }

结果

  1. 请输入年份:
  2. 2018
  3. 2018年二月有28

还想知道其他的Calendar字段,可以通过JDK提供的API来查看。

发表评论

表情:
评论列表 (有 0 条评论,537人围观)

还没有评论,来说两句吧...

相关阅读