java===Date,DateFormat,SimpleDateFormat,Calendar类

package 常用类.Date;

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

/**月份从0-11的整数表示,0是一月,11是12月
 * 日期对象--》毫秒值  getTime方法:
 * 原因:可以通过毫秒值来进行日期运算
 * 毫秒值--》日期对象 setTime方法或者构造方法new Date(毫秒值);
 * 原因:可以对年月日等字段的操作
 * Date实现了comparable接口
 * 格式化:简单说把物体进行重新划分,改变物体内部空间结构
 * abstract DateFormat :日期格式类
 * 工厂:生产对象的地方*/
public class dateDemo {

    public static void main(String[] args) throws ParseException {
        //demo_1();
        demo_2();
        demo_3();
        test_1();

    }
    public static void test_1() throws ParseException {
        String str_day_1="2016-5-1";
        String str_day_2="2017-4-23";
        DateFormat dateFormat = DateFormat.getDateInstance();
        Date date1=dateFormat.parse(str_day_1);
        Date date2=dateFormat.parse(str_day_2);
        Long l1=date1.getTime();
        Long l2=date2.getTime();
        //日期相减一定要确保结果是正数
        System.out.println(Math.abs((l1-l2))/1000/60/60/24+"天");
    }
    /**将日期格式的字符串---》日期对象
     * @throws ParseException */
    public static void demo_3() throws ParseException {
        String str_day="2017-4-23";
        String str_day_1="2017---5-1";
        DateFormat dateFormat = DateFormat.getDateInstance();
        DateFormat d1 = new SimpleDateFormat("yyyy---MM-dd");
        Date date1=dateFormat.parse(str_day);
        System.out.println(date1);
        Date date2=d1.parse(str_day_1);
        System.out.println(date2);

    }
    /**将日期对象---》日期格式字符串 ;对日期对象进行格式化   使用DateFormate类中的format方法*/
    public static void demo_2() {
        Date date =  new Date();
        //获取日期格式对象的方法,具备着默认风格。
        //DateFormat dateFormat = DateFormat.getDateInstance();
        DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
        dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
        String str_day = dateFormat.format(date);
        System.out.println(str_day);
        //自定义风格日期 是由SimpleDateFormat类完成的
        dateFormat= new SimpleDateFormat("yyyy--MM--dd");
        String str_day_1=dateFormat.format(date);
        System.out.println(str_day_1);
    }

    private static void demo_1() {
        Long time = System.currentTimeMillis();
        System.out.println(time);
        Date date1 = new Date();
        System.out.println(date1);
        Date date2 = new Date(1492942746472L);//long型
        System.out.println(date2);
    }

}
package 常用类.Calendar;

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

/**
 * abstract Calendar日历 类中提供返回对象的方法 getInstance();
 */
public class CalendarDemo {

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        // 设置时间
        //c.set(Calendar.YEAR, 2019);
        //c.set(2017, 3, 23);
        // 时间偏移
        //c.add(Calendar.DAY_OF_MONTH, 9);
        //c.add(Calendar.YEAR, -5);
        //打印当前时间
        demo_1(c);
        //计算每年2月有多少天
        int year=2017;
        int day=demo_2(c,year);
        System.out.println(year+"年二月有"+day+"天");
        //获取昨天的这个时间
        //demo_3(c);
//        Date date = c.getTime();
//        System.out.println(date);

    }

    public static void demo_3(Calendar c) {
        //c.get(Calendar.DAY_OF_MONTH);
        c.add(Calendar.DAY_OF_MONTH, -1);
        demo_1(c);
    }

    private static int demo_2(Calendar c,int year) {

        c.set(year, 2, 1, 0, 0, 0);
        c.add(Calendar.DAY_OF_MONTH,-1);
        int day =c.get(Calendar.DAY_OF_MONTH);
        return day;

    }

    public static void demo_1(Calendar c) {

        // 获取当前时间
        int year = c.get(Calendar.YEAR);
        int day = c.get(Calendar.DAY_OF_MONTH);
        int month = c.get(Calendar.MONTH) + 1;// 月份从0开始计数所以要加1
        int week = c.get(Calendar.DAY_OF_WEEK);
        int hour=c.get(Calendar.HOUR_OF_DAY);
        System.out.println(year + "年" + month + "月" + day + "日"+hour+"点"+ getWeek(week));
    }
/**输出日期一定要注意1代表周日 7代表周六 为了观看方便可以通过下面这个方法实现字符串输出对应星期*/
    private static String getWeek(int week) {
        String[] arr = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

        return arr[week];
    }

}
时间: 2024-10-12 23:35:59

java===Date,DateFormat,SimpleDateFormat,Calendar类的相关文章

Java中有关日期的一些常见运算与应用(Date,DateFormat,SimpleDateFormat)

1 import java.text.DateFormat; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4 import java.util.Calendar; 5 import java.util.GregorianCalendar; 6 7 public class Oct_18_TimeAndDateFormat { 8 9 public static void main(String[] args) { 1

Java Date与SimpleDateFormat

最近在弄一些涉及到时间处理的项目.本来自己写了一个时间转换函数,虽然能用但是过于麻烦而且不够规范,于是学习了下java自带的时间处理的类. public class Timechg { public static int ymd[][][]= new int[110][13][33]; public static int day[][][] = new int[25][61][61]; public static int _ymd[][] = new int[110*13*33+1][3]; p

Date、DateFormat、Calendar、System、Math类总结

java.util.Date: 构造方法 public Date() 空参构造,返回当前时间 public Date(long 毫秒值) 指定毫秒值的时间 普通方法 long getTime() 获取毫秒值 viod setTime() 设置毫秒值 Date 指定毫秒数和Date类型的转换 Date d = new Date(); 重写toString方法:Sat Mar 25 15:33:29 CST 2017 java.text.DateFormat 日期格式化类 抽象类 将日期和指定格式字

Java从零开始学三十一(DATE和Calendar类)

一.Date类 Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期 二.Calendar类 Calendar类可以将取得的时间精确到毫秒.但是,这个类本身是一个抽象类,如果要想使用一个抽象类,则必须依靠对象的多态性,通过子类进行父类的实例化操作,Calendar的子类是GregorianCalendar类. package com.pb.demo3; import java.util.Calendar; import

【javaSE】Date和Calendar类

2.1 Date类及常用方法 java.util.Date类用于封装日期和时间信息.目前Date类的大多数用于进行时间分量计算的方法已经被Calendar取代. 无参的构造方法,构造的Date对象封装当前的日期和时间信息 Date date=new Date(); Date类已经重新了toString对象 getTime()方法:获取1970年1月1日距今的毫秒数,例如 long time=date.getTime(); setTime()方法通过毫秒数设置Date对象的时间,例如 date.s

Java date format 时间格式化

import java.util.Date; import java.text.DateFormat; /** * 格式化时间类 * DateFormat.FULL = 0 * DateFormat.DEFAULT = 2 * DateFormat.LONG = 1 * DateFormat.MEDIUM = 2 * DateFormat.SHORT = 3 * @author    Michael * @version   1.0, 2007/03/09 */ public class Tes

21、java中和日期相关的类

一.Data及其常用API 1.简介 Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间,精确到毫秒.是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点. 固定的时间点叫纪元(epoch),是UTC时间1970年 1月 1日 00:00:00  ,UTC(Universal Time Coordinated世界调整时间)与GMT(Greenwich Mean Time格林威治时间)一样,是一种具有实际目的的科学标准时间. 因为Date的设计具有

黑马程序员(Java)----API之常用类(Math、Random、System、BigInteger、Date和DateFormat、Calendar)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 4.9  Math Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. 4.9.1 常用变量和方法 成员变量: public static final double PI public static final double E 成员方法: public static int abs(int a):绝对值 public static double ceil(dou

I学霸官方免费教程二十三:Java常用类之日期类 Date类 SimpleDateFormat类 Calendar类

Date 类 创建对象时,默认获取系统当前时间 SimpleDateFormat类 用来格式化日期的:创建对象是可以传入格式:new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");主要方法format(Date) Calendar类 可以使用SimpleDateFormat类中的getCalendar()方法获取对象.常用方法:get(int); 常用属性:YEAR MONTH... 实例: package common_class; import j