Java SE入门及基础(57)& Java常用API & 日期时间

目录

日期时间

1. Date 类

常用方法

示例

思考:

2. SimpleDateFormat 类

常用方法

常用日期格式

示例

3. Calendar 类

常用静态字段

常用方法

示例


日期时间

1. Date

常用方法
public Date (); // 无参构造,表示计算机系统当前时间,精确到毫秒
public Date ( long date ); // 带参构造,表示根据给定的时间数字来构建一个日期对象,精确到毫秒
public long getTime (); // 获取日期对象中的时间数字,精确到毫秒
public boolean before ( Date when ); // 判断当前对象表示的日期是否在给定日期之前
public boolean after ( Date when ); // 判断当前对象表示的日期是否在给定日期之后
示例
import java . util . Date ;
public class DateTest {
        public static void main ( String [] args ) {
                Date now = new Date ();
                System . out . println ( now );
                //时间单位一般是毫秒,当然更精确的是纳秒
                long currentTime = System . currentTimeMillis () - 24 * 60 * 60 * 1000 ;
                Date date = new Date ( currentTime );
                System . out . println ( date );
                System . out . println ( date . getTime ());
                boolean before = now . before ( date ); //false
                boolean after = now . after ( date ); //true
                System . out . println ( before );
                System . out . println ( after );
        }
}
思考:
        打印的日期不好看懂,能否按照我们熟悉的方式来打印?
        当然可以,首先我们需要将日期按照我们熟悉的日期格式转换为一个字符串日期,然后再打印。

2. SimpleDateFormat

常用方法
public SimpleDateFormat ( String pattern ); // 根据给定的日期格式构建一个日期格式化对象
public final String format ( Date date ); // 将给定日期对象进行格式化
public Date parse ( String source ) throws ParseException ; // 将给定的字符串格式日期解析为日期对象
常用日期格式
字母含义说明

y

年 year不区分大小写,一般用小写
M月 month区分大小写,只能使用大写
d日 day区分大小写,只能使用小写
H时 hour不区分大小写,一般用大写
m分 minute区分大小写,只能使用小写
s秒 second区分大小写,只能使用小写
示例
import java . text . ParseException ;
import java . text . SimpleDateFormat ;
import java . util . Date ;
public class DateFormatTest {
public static void main ( String [] args ) {
Date now = new Date ();
// yyyy-MM-dd HH:mm:ss yyyy/MM/dd HH:mm:ss
SimpleDateFormat format = new SimpleDateFormat ( "yyyy MM dd HH mm
ss " );
String dateStr = format . format ( now );
System . out . println ( dateStr );
String s = "2000-01-01 12:01:50" ;
SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss" );
try {
Date date = sdf . parse ( s );
System . out . println ( date );
} catch ( ParseException e ) {
e . printStackTrace ();
}
}
}

3. Calendar

常用静态字段

常用方法
public static Calendar getInstance (); // 获取日历对象
public final Date getTime (); // 获取日历表示日期对象
public final void setTime ( Date date ); // 设置日历表示的日期对象
public int get ( int field ); // 获取给定的字段的值
public void set ( int field , int value ); // 设置给定字段的值
public void roll ( int field , int amount ); // 根据给定的字段和更改数量滚动日历
public int getActualMaximum ( int field ); // 获取给定字段的实际最大数量
示例
import java . text . SimpleDateFormat ;
import java . util . Calendar ;
import java . util . Date ;
public class CalendarTest {
        public static void main ( String [] args ) {
                //获取一个日历对象,默认就是系统当前时间
                Calendar c = Calendar . getInstance ();
                Date date = c . getTime ();
                SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss" );
                System . out . println ( sdf . format ( date ));
                long time = System . currentTimeMillis () - 3 * 24 * 60 * 60 * 1000 ;
                Date before = new Date ( time );
                c . setTime ( before ); // 设置时间到 3 天前
                c . set ( Calendar . YEAR , 2019 ); // 设置年份为 2020
                c . set ( Calendar . MONTH , 1 ); // 设置月份
                c . roll ( Calendar . DAY_OF_MONTH , - 1 ); // 天数 -1
                int year = c . get ( Calendar . YEAR ); // 获取年份
                System . out . println ( year );
                int month = c . get ( Calendar . MONTH ); // 获取月份
                System . out . println ( month );
                int day = c . get ( Calendar . DAY_OF_MONTH ); // 获取一个月中的第几天
                System . out . println ( day );
                int hour = c . get ( Calendar . HOUR_OF_DAY ); // 获取小时 (24)
                System . out . println ( hour );
                int minute = c . get ( Calendar . MINUTE ); // 获取分钟
                System . out . println ( minute );
                int second = c . get ( Calendar . SECOND ); // 获取秒
                System . out . println ( second );
                int maxDays = c . getActualMaximum ( Calendar . DAY_OF_MONTH ); // 获取月份的最大天数
                System . out . println ( maxDays );
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值