Date、DateFormat和Calendar类的简单认识
第三阶段 JAVA常见对象的学习
Date、DateFormat和Calendar类的简单认识
Date类
Date:表示特定的瞬间,精确到毫秒。
(一) 构造方法:
Date():根据当前的默认毫秒值创建日期对象
Date(long date):根据给定的毫秒值创建日期对象
(二) 成员方法:
getTime()
setTime(long time)
import java.util.Date;
public class DateDemo {
    public static void main(String[] args) {
        Date d1 = new Date();
        System.out.println("d1:" + d1);
        Date d2 = new Date(System.currentTimeMillis());
        System.out.println("d2:" + d2);
    }
}
//运行结果
d1:Mon Jun 10 22:02:00 CST 2019
d2:Mon Jun 10 22:02:00 CST 2019
DateFormat类

Date → String(格式化)
//(这个是具体子类SimpleDateFormat的父类DateForamt中的一个方法)
Public final String format(Date date)
String→ Date(解析) parse ()
public Date parse(String source)
DateFormat:
可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。
/*
 *  其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。
 *  注意:有的格式大写,有的格式小写
 *	例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12小时制。
 */
package cn.bwh_02_DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatDemo {
    public static void main(String[] args) {
        Date d = new Date();
        SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
        System.out.println("Current Date:" + ft.format(d));
    }
}
//运行结果
Current Date:星期一 2019.06.10 at 10:23:43 下午 CST
案例:计算某一时间到现在的天数
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/*
 *  计算某一时间到现在的天数
 */
public class DateFormatDemo2 {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入过去的一个时间点(以“ - ”分隔):");
        String line = sc.nextLine();
        //把字符串转换为一个日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date d = sdf.parse(line);
        //通过该日期获取一个毫秒值
        long oldTime = d.getTime();
        //获取当前时间毫秒值
        long nowTime = System.currentTimeMillis();
        long time = nowTime - oldTime;
        long day = time/1000/60/60/24;
        System.out.println("这个时间过去:" + day + "天");
    }
}
//运行结果
请输入过去的一个时间点(以“ - ”分隔):
2019-5-20
这个时间过去:21天
Calendar 类
Calendar类是一个抽象类,常用语操作日历字段如 YEAR,MONTH,DAY_OF_MONTH,HOUR等
//返回给定字段的值
public int get(int field)
//根据给定的日历字段和对应的时间,来对当前的日历进行操作。
//(amount可以是负的)
public void add(int field,int amount)
//设置当前日历的年月日
public final void set(int year,int month,int date)
import java.util.Calendar;
public class CalendarDemo {
	public static void main(String[] args) {
		Calendar rightNow = Canlendar.getInstance();//子类对象
		//获取年月日
		int year = rightNow.get(Calendar.YEAR);
		int month = rightNow.get(Calendar.MONTH);
		int date = rightNow.get(Calendar.DATE);
		System.out.println(year + "年" + (month -1) + "月" + date + "日");
	}
}
案例:输出指定年份的日历
import java.util.Calendar;
import java.util.Scanner;
public class CalendarDemo {
	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入年份:");
		int year = sc.nextInt();
		c.set(Calendar.YEAR, year);
		c.set(Calendar.MONTH, 0);
		c.set(Calendar.DAY_OF_MONTH, 1);
		while (c.get(Calendar.YEAR) == year) {
			int weekday = c.get(Calendar.DAY_OF_WEEK);
			int monthday = c.get(Calendar.DAY_OF_MONTH);
			if (monthday == 1) {
				System.out.println("\n日\t一\t二\t三\t四\t五\t六\t第" + (c.get(Calendar.MONTH) + 1) + "月");
				System.out.println("---------------------------------------------------");
				for (int i = 0; i < weekday - 1; i++)
					System.out.print("\t");
			}
			System.out.print(monthday + "\t");
			if (weekday == 7)
				System.out.println();
			c.add(Calendar.DAY_OF_MONTH, 1);
		}
		sc.close();
	}
}
结尾:
如果内容中有什么不足,或者错误的地方,欢迎大家给我留言提出意见, 蟹蟹大家 !_
如果能帮到你的话,那就来关注我吧!(系列文章均会在公众号第一时间更新)
在这里的我们素不相识,却都在为了自己的梦而努力 ❤
一个坚持推送原创Java技术的公众号:理想二旬不止
Date、DateFormat和Calendar类的简单认识的更多相关文章
- Math、Random、System、BigInteger、Date、DateFormat、Calendar类,正则表达式_DAY14
		
1:Math&大数据类四则运算 X abs(X x) double random() 产生随机数 double ceil(double a) 向上取整 double flo ...
 - java ->Date、DateFormat、Calendar类
		
Date类概述 类 Date 表示特定的瞬间,精确到毫秒. 毫秒概念:1000毫秒=1秒 毫秒的0点: System.currentTimeMillis() 相当于Date d = new Date ...
 - Date、DateFormat、Calendar、System、Math类总结
		
java.util.Date: 构造方法 public Date() 空参构造,返回当前时间 public Date(long 毫秒值) 指定毫秒值的时间 普通方法 long getTime() 获取 ...
 - Java学习笔记23(Calendar类)
		
Calendar意味日历,对Date类中的很多方法做了改进 Calendar类是一个抽象类,不可以见对象,需要子类完成实现 不过这个类有特殊之处,不需要创建子类对象,而是使用它的静态方法直接获取: 示 ...
 - 14-03 java BigInteger类,BigDecimal类,Date类,DateFormat类,Calendar类
		
BigInteger类 发 package cn.itcast_01; import java.math.BigInteger; /* * BigInteger:可以让超过Integer范围内的数据进 ...
 - Java 基础 常用API ( 正则表达式,Date类,DateFormat类,Calendar类 )
		
正则表达式 正则表达式的概念 正则表达式(英语:Regular Expression,在代码中常简写为regex). 正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个 ...
 - 08 正则表达式,Math类,Random,System类,BigInteger,BigDecimal,Date,DateFormat,Calendar
		
正则表达式: 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. public class Demo2_Regex { public sta ...
 - [Day16]常用API(正则表达式、Date类、DateFormat类、Calendar类)
		
1.正则表达式(Regular Expression,regex)-是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串 1.1匹配规则: (1)字符:x -代表的 ...
 - java时间日期类(Date、DateFormat、Calendar)学习
		
1.Date类 常用方法:long getTime(),用于返回当前时刻的毫秒值 Date d = new Date(2000); System.out.println(d.getTime());// ...
 
随机推荐
- 【题解】游荡的奶牛-C++
			
题目题目描述奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走, 试图找到整块草地中最美味的牧草.Farmer John在某个时刻 ...
 - 002_FreeRTOS临界段代码
			
(一)临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段 (二)FreeRTOS 与 临 界 段 代 码 保 护 有 关 的 函 数 有 4 个,两个是任务级的临界段代码保护,两个是中断 ...
 - java监测硬盘空间大小
			
package com.zuidaima.util.file; import java.io.File; public class FreeDiskSpace { public static void ...
 - Visual Studio Code:中文乱码
			
造冰箱的大熊猫@cnblogs 2019/11/3 在UTF环境下,用VSCode打开一个GB2312编码的文件,显示乱码怎么办? 1.窗口右下方会显示当前所使用的编码格式(下图中手型图标所在处UTF ...
 - .pid文件
			
pid文件为进程文件,默认的在每个/var/run/目录下生成,当使用systemctl进行进程启动的时候,在这个目录下就会生成相应的pid文件,今天在进行poc测试的时候,对进程执行了enable操 ...
 - Codevs 1038 一元三次方程求解 NOIP 2001(导数 牛顿迭代)
			
1038 一元三次方程求解 2001年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 有形如:ax3+b ...
 - CF1153E Serval and Snake【构造】
			
题目链接:洛谷 这道题是很久以前NTF跟我说的,现在想起来把它做了... 我们发现,如果蛇的两头都在矩形里或矩形外,则询问为偶数,否则为奇数. 所以我们询问每一行和每一列,就能知道蛇的两头的横纵坐标了 ...
 - Selenium高亮显示定位到的元素
			
在调试Selenium脚本中,有时因为操作太快或操作不明显而不清楚是否定位到了正确的元素.我们可用通过执行js为定位到的元素添加样式,来高亮显示定位到的元素. 在Selenim Webdriver中, ...
 - c 判断是否为 字母或数字(iswalnum example)
			
#include <stdio.h> #include <wctype.h> int main () { int i; wchar_t str[] = L"c3p.o ...
 - 下载安装Xocde并创建一个C语言的项目工程
			
安装好Xcode后,新建工程 选择command line tool 选择c语言 点击创建 可以设置运行平台版本 设置 设置c标准 去掉c++ 支持 打开编辑页面 运行 参考: https://www ...