Java日期处理

一、相关类

1、Date: 
  Date表示特定的瞬间,精确到毫秒,Date中的相应方法已废弃,从JDK 1.1开始,应该使用Calendar类实现日期和时间字段之间转换。 
2、DateFormat: 
  DateFormat是日期/时间格式化子类的抽象类,格式化并解析日期或时间,可以进行日期 -> 文本 ,文本-> 日期的转换。子类SimpleDateFormat。 
3、Calendar: 
  Calendar是日历抽象类,可通过其获取日期时间。推荐使用。

package datetext;

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

public class Text {

    public static void main(String[] args) {
        Date d = new Date();
        System.out.println(d);//第一种表示方法,Sat Jul 22 20:18:10 CST 2017
        System.out.println("----------------------");

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(d));//第二种表示方法,2017-07-22 20:18:10|SimpleDateFormat的用法
        System.out.println("----------------------");
        //老方法,慢慢的被淘汰
        System.out.println(d.getTime());
        System.out.println(d.getYear());
        System.out.println(d.getMonth()+1);
        System.out.println(d.getDate());
        System.out.println(d.getHours());
        System.out.println(d.getMinutes());
        System.out.println(d.getSeconds());

        System.out.println("----------------------");
        //新方法,用Calendar
        Calendar c = Calendar.getInstance(); //Calendar.getInstance() 使用默认时区和语言环境获得一个日历。
        System.out.println(c.get(Calendar.YEAR));
        System.out.println(c.get(Calendar.MONTH)+1);//注意:月份需要+1表示当前月
        System.out.println(c.get(Calendar.DATE));
        System.out.println(c.get(Calendar.HOUR));
        System.out.println(c.get(Calendar.MINUTE));
        System.out.println(c.get(Calendar.SECOND));

        System.out.println("----------------------");
        //SimpleDateFormat
        Date d2 = new Date();
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf2.format(d2));

        Calendar c2 =Calendar.getInstance();
        Date d_cal = c2.getTime();
        System.out.println(sdf2.format(d_cal));

    }

}

二、SimpleDateFormat

SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。

SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstancegetDateInstancegetDateTimeInstance 来新的创建日期-时间格式化程序。

1、日期和时间模式

2、例子:给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56

三、表示国际时间(用Calendar)

package datetext;

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

public class Text {

    public static void main(String[] args) {
        Date d = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(d));
        System.out.println("----------------------");

        /*String[] ids = TimeZone.getAvailableIDs();

        for(int i=0;i<ids.length;i++){
            System.out.println(ids[i]);//输出所有地区的ID
        }*/

        //以日本为例
        Calendar c = Calendar.getInstance(TimeZone.getTimeZone("Japan"));  //getTimeZone(),获得时区
        System.out.println(c.get(Calendar.HOUR));  //12小时制
        System.out.println(c.get(Calendar.HOUR_OF_DAY));  //24小时制
    }

}

四、把长整型数设置成一个特定的时间点:

package datetext;

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

public class Text {

    public static void main(String[] args) {
        Date d = new Date();
        //getTime(),返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
        System.out.println(d.getTime());//输出值为:1500733409509

        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(1500733409509l);//setTimeInMillis(long millis),
                                          //用给定的 long 值设置此 Calendar 的当前时间值。

        Date dd = c.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(dd)); //输出值为 2017-07-22 22:23:29
    }

}

五、Timestamp(时间戳,可以精确到毫秒)

package datetext;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Text {

    public static void main(String[] args) {
        Date d = new Date();

        System.out.println(d.getTime());//输出值为:1500733409509

        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(1500733409509l);

        Date dd = c.getTime();
        Timestamp ts = new Timestamp(1500733409509l);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS");
        System.out.println(sdf.format(ts)); //输出值为 2017-07-22 22:23:29:509
    }

}
时间: 2024-11-05 11:24:35

Java日期处理的相关文章

Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString());   //java.util.Date的含义long lSysTime1 = dt.getTime() / 1000;   //得到秒数,Date类型的getTime()返回毫秒数 2.由long类型转换成Date类型SimpleDat

利用java日期类生成数据仓库维度表

利用java日期类生成数据仓库维度表 Date类: 最基础的日期时间类,返回一个相对日期的毫秒数.精确到毫秒,但不支持日期的国际化和分时区显示.Date 类从Java 开发包(JDK)1.0 就开始进化,当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年. 这些方法现在遭到了批评并且已经被转移到了Calendar类里去了,这种改进旨在更好的处理日期数据的国际化格式. Calender类: 相对于Date更加强大的时间类,是抽象类,提供了常规的日期修改功能和国际化

Java日期的格式String类型GMT,GST换算成日期Date种类

请尊重他人的劳动成果.转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中常常会须要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候仅仅能获取String类型的日期了,这是由于SQLite是无类型的.这样不得不面对将String 类型的日

Java日期时间使用总结

一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在Java中,操作日期主要涉及到一下几个类: 1.java.util.Date 类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的把日期解释为年.月.日.小时.分钟和

Java 日期时间处理

Java 日期时间处理 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含时间),所以他的大部分构造器/方法都已Deprecated,因此就不再推荐使用(如果贸然使用的话,可能会出现性能/安全方面的问题);下面我仅介绍它还剩下的为数不多的几个方法(这些方法的共同点是Date与毫秒值的转换): 构造器 Date(): 在底层调用System.currentTimeMillis()作为日期参数.

Java日期格式化之将String类型的GMT,GST日期转换成Date类型

请尊重他人的劳动成果,转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中经常会需要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候只能获取String类型的日期了,这是因为SQLite是无类型的.这样不得不面对将String 类型的日期

Java日期转换SimpleDateFormat格式大全(转)

24小时制时间显示: public class Datetime { public static void main(String args[]){ java.util.Date current=new java.util.Date(); java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String c=sdf.format(current); System.ou

Java 日期获取

public static String getDateBefore(int day) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar now = Calendar.getInstance(); now.setTime(new Date()); now.add(Calendar.DATE, day); //day=-1表示得到昨天日期 return sdf.format(now

java 日期和字符串互转,依据当天整天时间 得到当天最后一秒的日期时间

java 日期和字符串互转.依据当天整天时间   得到当天最后一秒的日期时间 package com.hi; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 依据当天整天时间 * 得到当天最后一秒 * 数据库查询时非常有意义 起始天 到结速天 比方按天查询 2014-06-17 00:00:00

Java日期工具类,Java时间工具类,Java时间格式化

Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright  蕃薯耀 2017年2月4日 15:03:27 星期六 http://www.cnblogs.co