Java 日期时间

Java 日期时间_第1张图片

获取当前日期时间

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

日期比较

Java使用以下三种方法来比较两个日期:

  • 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
  • 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
  • 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

使用 SimpleDateFormat 格式化日期

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。例如:
Java 日期时间_第3张图片
Java 日期时间_第4张图片
Java 日期时间_第5张图片

package com.company;
import java.util.Date;
public class DateDemo {
    public static void main(String args[]) {
        // 初始化 Date 对象
        Date date = new Date();

        //c的使用
        System.out.printf("全部日期和时间信息:%tc%n",date);
        //f的使用
        System.out.printf("年-月-日格式:%tF%n",date);
        //d的使用
        System.out.printf("月/日/年格式:%tD%n",date);
        //r的使用
        System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
        //t的使用
        System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
        //R的使用
        System.out.printf("HH:MM格式(24时制):%tR",date);
    }
}

Java 日期时间_第6张图片
定义日期格式的转换符可以使日期通过指定的转换符生成新字符串。这些日期转换符如下所示:

//b的使用,月份简称
        String str=String.format(Locale.US,"英文月份简称:%tb",date);
        System.out.println(str);
        System.out.printf("本地月份简称:%tb%n",date);
        //B的使用,月份全称
        str=String.format(Locale.US,"英文月份全称:%tB",date);
        System.out.println(str);
        System.out.printf("本地月份全称:%tB%n",date);
        //a的使用,星期简称
        str=String.format(Locale.US,"英文星期的简称:%ta",date);
        System.out.println(str);
        //A的使用,星期全称
        System.out.printf("本地星期的简称:%tA%n",date);
        //C的使用,年前两位
        System.out.printf("年的前两位数字(不足两位前面补0):%tC%n",date);
        //y的使用,年后两位
        System.out.printf("年的后两位数字(不足两位前面补0):%ty%n",date);
        //j的使用,一年的天数
        System.out.printf("一年中的天数(即年的第几天):%tj%n",date);
        //m的使用,月份
        System.out.printf("两位数字的月份(不足两位前面补0):%tm%n",date);
        //d的使用,日(二位,不够补零)
        System.out.printf("两位数字的日(不足两位前面补0):%td%n",date);
        //e的使用,日(一位不补零)
        System.out.printf("月份的日(前面不补0):%te",date);

Java 日期时间_第7张图片

解析字符串为时间

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

package com.company;

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

public class parse {
    public static void main(String args[]) {
        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");

        String input = args.length == 0 ? "1818-11-11" : args[0];

        System.out.print(input + " Parses as ");

        Date t;

        try {
            t = ft.parse(input);
            System.out.println(t);
        } catch (ParseException e) {
            System.out.println("Unparseable using " + ft);
        }
    }
}
$ java DateDemo
1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818
$ java DateDemo 2007-12-01
2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007

测量时间

下面的一个例子表明如何测量时间间隔(以毫秒为单位):

package com.company;

import java.util.Date;

public class DiffDemo {
    public static void main(String args[]) {
        try {
            long start = System.currentTimeMillis( );
            System.out.println(new Date( ) + "\n");
            Thread.sleep(5*60*10);
            System.out.println(new Date( ) + "\n");
            long end = System.currentTimeMillis( );
            long diff = end - start;
            System.out.println("Difference is : " + diff);
        } catch (Exception e) {
            System.out.println("Got an exception!");
        }
    }
}

Java 日期时间_第8张图片
Java 日期时间_第9张图片

package com.company;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class GregorianCalendarDemo {
    public static void main(String args[]) {
        String[]  months= {
                "Jan", "Feb", "Mar", "Apr",
                "May", "Jun", "Jul", "Aug",
                "Sep", "Oct", "Nov", "Dec"};

        int year;
        // 初始化 Gregorian 日历
        // 使用当前时间和日期
        // 默认为本地时间和时区
        GregorianCalendar gcalendar = new GregorianCalendar();
        // 显示当前时间和日期的信息
        System.out.print("Date: ");
        System.out.print(months[gcalendar.get(Calendar.MONTH)]);
        System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
        System.out.println(year = gcalendar.get(Calendar.YEAR));
        System.out.print("Time: ");
        System.out.print(gcalendar.get(Calendar.HOUR) + ":");
        System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
        System.out.println(gcalendar.get(Calendar.SECOND));

        // 测试当前年份是否为闰年
        if(gcalendar.isLeapYear(year)) {
            System.out.println("当前年份是闰年");
        }
        else {
            System.out.println("当前年份不是闰年");
        }
    }
}

你可能感兴趣的:(Java,日期时间,java学习)