博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java-Date-DateFormat-Calendar
阅读量:4645 次
发布时间:2019-06-09

本文共 2727 字,大约阅读时间需要 9 分钟。

例:

package cn.itcast.demo04;

import java.text.SimpleDateFormat;

import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class DateTest {

public static void main(String[] args) throws Exception {
function_1();
}
/*
* 闰年计算
* 2000 3000
* 高级的算法: 日历设置到指定年份的3月1日,add向前偏移1天,获取天数,29闰年
*/
public static void function_1(){
Calendar c = Calendar.getInstance();
//将日历,设置到指定年的3月1日
c.set(2088, 2, 1);
//日历add方法,向前偏移1天
c.add(Calendar.DAY_OF_MONTH, -1);
//get方法获取天数
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
}
/*
* 计算活了多少天
* 生日 今天的日期
* 两个日期变成毫秒值,减法
*/
public static void function() throws Exception {
System.out.println("请输入出生日期 格式 YYYY-MM-dd");
//获取出生日期,键盘输入
String birthdayString = new Scanner(System.in).next();
//将字符串日期,转成Date对象
//创建SimpleDateFormat对象,写日期模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//调用方法parse,字符串转成日期对象
Date birthdayDate = sdf.parse(birthdayString);
//获取今天的日期对象
Date todayDate = new Date();
//将两个日期转成毫秒值,Date类的方法getTime
long birthdaySecond = birthdayDate.getTime();
long todaySecond = todayDate.getTime();
long secone = todaySecond-birthdaySecond;
if(secone < 0){
System.out.println("还没出生呢");
}
else{
System.out.println(secone/1000/60/60/24);
}
}
}

求出今天距离2020年1月1日相差几天

思路:

1.获取当前时间对应的天数

         2.获取2020年1月1日对应的天数

         3.两个时间相减(2020年1月1日的天数 –当前时间天数)

代码实现:

public static void main(String[] args){

    Calendar my = Calendar.getInstance();

    Calendar c = Calendar.getInstance();

    //设置年月日 2020-01-01

    my.set(Calendar.YEAR, 2020);

    my.set(Calendar.MONTH, 0);

    my.set(Calendar.DATE, 1);

    //获取时间中的天数

    int day = c.get(Calendar.DATE);

    int myDay = my.get(Calendar.DATE);

    System.out.println(myDay - day);

}

总结

1.1      知识点总结

l  正则表达式:用来定义匹配规则,匹配一系列符合某个句法规则的字符串。

正则表达式的匹配规则

请参见1.2 正则表达式的匹配规则

正则表达式的常用方法:

public boolean matches(String regex) //判断字符串是否匹配给定的规则

public String[] split(String regex)    //根据给定正则表达式的匹配规则,拆分此字符串

public String replaceAll(String regex,String replacement)   //将符合规则的字符串内容,全部替换为新字符串

 

l  Date: 日期/时间类

构造方法:

public Date()// 系统当前日期时间

public Date(long date) 得到一个1970年1月1日 0点这个时间基础上,加上参数date 毫秒值对应的日期时间

    方法:

    public long getTime() 获取日期所对应的毫秒值

 

l  DateFormat:是日期/时间格式化子类的抽象类, 使用其子类SimpleDateFormat 实例化

构造方法:

public SimpleDateFormat() 默认的格式化操作

public SimpleDateFormat(String pattern) 按照指定的格式,进行日期格式化

                                     日期和时间模式

                                     y  年 

                                     M  年中的月份 

                                     d  月份中的天数

                                     H  一天中的小时数(0-23)

                                     m  小时中的分钟数

                                     s  分钟中的秒数

                                     S  毫秒数

方法:

                            public final String format(Date date) 把日期 格式化成字符串

                            public Date parse(String source) 把日期字符串 转换成 日期对象

 

l  Calendar:日历类,可获取日期中指定字段的值

方法:

                            public static Calendar getInstance() //获取日期对象

public int get(int field)     //获取时间字段值

public void add(int field,int amount)       //指定字段增加某值

public final void set(int field,int value)//设置指定字段的值

public final Date getTime()      //获取该日历对象转成的日期对象

 

转载于:https://www.cnblogs.com/zimo-bwl1029-s/p/9194719.html

你可能感兴趣的文章
【AnjularJS系列概况】适用场景
查看>>
SecureCRT卡死的问题
查看>>
053-002
查看>>
用Python 写一个机器人陪你聊天(文尾有彩蛋)
查看>>
Django 中使用权限认证
查看>>
zendframework配置篇
查看>>
油价的秘密
查看>>
SQL Server 用链接服务器 同步MySQL
查看>>
file-API 实现移动端 添加图片 预览缩略图(自己学习)
查看>>
javascript 老王开车去东北
查看>>
mybatis知识点
查看>>
app 应用
查看>>
ZOJ 1008 Gnome Tetravex(DFS)
查看>>
Mysql基础知识:操作数据库
查看>>
mysql 数据库远程访问设置方法
查看>>
Far manager界面混乱问题解决
查看>>
1144.Freckles
查看>>
62.Unique Paths
查看>>
如何正确的停止一个线程
查看>>
鼠标事件-MouseEvent【转】
查看>>