java时间日期

java时间日期

java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。

  • 第一个构造函数使用当前日期和时间来初始化对象。
Date()  分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • 第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
Date(long date)  分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

Date对象创建以后,可以调用的方法;

序号方法和描述
1boolean after(Date date)
若当调用此方法的Date对象在指定日期之后返回true,否则返回false。就是测试此日期是否在当前日期之后
2boolean before(Date date)
若当调用此方法的Date对象在指定日期之前返回true,否则返回false。就是测试此日期是否在指定日期之前
3Object clone( )
返回此对象的副本。
4int compareTo(Date date)
比较调用此方法的日期与指定日期的顺序。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
5int compareTo(Object obj)
若obj是Date类型则操作等同于compareTo(Date) 。否则它抛出ClassCastException。
6boolean equals(Object date)
当调用此方法的Date对象和指定日期相等时候返回true,否则返回false。
7

long getTime( )
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

实现date到long的转换调用此方法:long time = new Date().getTime();

9

void setTime(long time)
用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。表示1970年1月1日之后的时间点。

实现long到date的转换调用此方法:Date date = new Date(time);

10String toString( )
把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

获取当前日期时间

Java中获取当前日期和时间很简单,使用 Date 对象的 toString() 方法来打印当前日期和时间,如下所示:

import java.util.Date; 

public class DateDemo { 
      public static void main(String args[]) { 
        // 初始化 Date 对象 
        Date date = new Date();
 
        // 使用 toString() 函数显示日期时间 
        System.out.println(date.toString()); } }

以上实例编译运行结果如下:

Fri May 10 22:00:36 CST 2019

使用 SimpleDateFormat 格式化日期

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类(把日期格式化为文本(字符串))。

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

SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。例如:

package Date;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo2 {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date.toString());
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(simpleDateFormat.format(date));
        SimpleDateFormat simpledateformate2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println(simpledateformate2.format(date));

    }
}

上面实例编译运行的结果为:

Sun May 12 21:03:41 CST 2019
2019-05-12 21:03:41
2019-05-12 09:03:41

在上面的代码中SimpleDateFormate确立了转换的格式,其中yyyy是指完整的公元年,MM是指月份,dd指的是日期,HH:mm:ss是 时 分 秒;

注意的是:MM是指月份,mm指的是分;HH指的是24小时制,而hh指的是12小时制;

解析字符串为时间

SimpleDateFormat 类有一些附加的方法,特别是parse(),它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串。

  1. public String format(Date date):     把一个日期对象格式化成一个字符串
  2.  public Date parse(String dateStr):    把一个日期字符串解析成一个日期对象 注意的是要以指定格式解析

例如:

package Date;

        import java.text.ParseException;
        import java.text.SimpleDateFormat;

public class Parsedemo  {
    public static void main(String[] args) throws ParseException {
        String time = "2019-03-02 12:23:30";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println(dateFormat.parse(time));
        SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(dateFormat1.parse(time));
    }
}

上面实例编译运行的结果为:

Sat Mar 02 00:23:30 CST 2019
Sat Mar 02 12:23:30 CST 2019

calender类

calender类的功能比date类的强大的多,而且在实现方式上也比date类复杂许多;

calender类是一个抽象类,在实际使用时实现特定的子类对象,创建对象的过程对程序员来说是透明的。只需要使用getinstance方法创建即可;

创建一个代表系统当前日期的Calendar对象

Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。CalendargetInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:

     Calendar rightNow = Calendar.getInstance();

创建一个指定日期的Calendar对象

使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

//创建一个代表2019年4月12日的calender对象
Calendar calendar = Calendar.getInstance();
        calendar.set(2019,4,12);

Calendar类对象信息的设置

Set设置          如:

Calendar calender = Calendar.getInstance();

调用:

public final void set(int year,int month,int date)

利用字段类型设置

如果只设定某个字段,例如日期的值,则可以使用如下set方法:

public void set(int field,int value)

把calender对象代表的年份设置为2018年,其他的所有数值都会被重新计算;‘

calendar.set(Calendar.YEAR,2018);

其他的字段的属性set的意义按照此格式设置;

Add设置

例如给calender对象的日期加5,也是表示calender日期后第5 天的日期;同样的如果是 -5就表示calender日期前的第5天的日期;

calendar.add(Calendar.DATE,5);

calendar.add(Calendar.DATE,-5);

Calendar类对象信息的获得

Calendar c1 = Calendar.getInstance(); // 获得年份

int year = c1.get(Calendar.YEAR); // 获得月份

int month = c1.get(Calendar.MONTH) + 1; // 获得日期

int date = c1.get(Calendar.DATE); // 获得小时

int hour = c1.get(Calendar.HOUR_OF_DAY); // 获得分钟

int minute = c1.get(Calendar.MINUTE); // 获得秒

int second = c1.get(Calendar.SECOND); // 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)

int day = c1.get(Calendar.DAY_OF_WEEK);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值