1、与日期时间相关的类:
      第一:java.util.Date;                           将时间作为一个整体使用、处理时,使用Date类较为简便
      第二:java.util.Calender;                     要处理时间的一部分,如月、分时,使用Calendar类较为简便
      第三:java.text.DateFormat                抽象类,是SimpleDateFormate的父类
      第四:java.text.SimpleDateFormate    时间日期转换时,用的最多的类

2、日期和时间模式

日期和时间格式由日期和时间模式 字符串指定。

在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。

所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。

定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y Year 199696
M 年中的月份 Month JulyJul07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text TuesdayTue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard TimePSTGMT-08:00
Z 时区 RFC 822 time zone -0800

为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制

3、格式转换

DateFormat类中的两个方法:

public Date parse(String source) throws ParseException

A.parse(B)  :将字符串B按照A的形式解析成Date              A是DateFormat或者其子类的实例

public final String format(Date date)

A.format(B):将一个 Date类型的B格式化为A格式的字符串      A是DateFormat或者其子类的实例

实例:         将  2008-10-19 10:11:30.345   转化为   2008年10月19日 10时11分30秒345毫秒

步骤:2008-10-19 10:11:30.345  -- parse --> date --format--> 2008年10月19日 10时11分30秒345毫秒

public static void main(String args[]){
               String strDate = "2008-10-19 10:11:30.345" ;
               SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") ;  // 实例化模板对象
               SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒SSS毫秒") ;    
               Date d = null ;
               try{
                     d = sdf1.parse(strDate) ;                                                                                 // 将给定的字符串中解析成日期
                     System.out.println(d);                                                                                    //Sun Oct 19 10:11:30 CST 2008
               }catch(Exception e){
                     e.printStackTrace() ; 
               }
               System.out.println(sdf2.format(d)) ;                        // 将日期格式化为字符串   2008年10月19日 10时11分30秒345毫秒

}

4、日期比较、加减

Date类中的两个方法:

public long getTime()            返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
public void setTime(long time)   设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。

实例:  求出sourceTime,过minuteNumber分钟后的时间
 public static String getPreTime(String sourceTime, String minuteNumber) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mydate1 = "";
try {
Date date1 = format.parse(sourceTime);
long Time = (date1.getTime() / 1000) + Integer.parseInt(minuteNumber) * 60;
date1.setTime(Time * 1000);
mydate1 = format.format(date1);
} catch (Exception e) { }
return mydate1;
}

5、时间戳:某个时间点的时间戳就是:该时间点距1970 年 1 月 1 日 00:00:00相差的毫秒数 

获得当前时间的时间戳:new Date().getTime();  System.currentTimeMillis();

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.playtogether.utils;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class DateUtils {
 
    /**
     * unix时间戳转换为dateFormat
     
     * @param beginDate
     * @return
     */
    public static String timestampToDate(String beginDate) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String sd = sdf.format(new Date(Long.parseLong(beginDate)));
        return sd;
    }
 
    /**
     * 自定义格式时间戳转换
     
     * @param beginDate
     * @return
     */
    public static String timestampToDate(String beginDate,String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        String sd = sdf.format(new Date(Long.parseLong(beginDate)));
        return sd;
    }
 
    /**
     * 将字符串转为时间戳
     
     * @param user_time
     * @return
     */
    public static String dateToTimestamp(String user_time) {
        String re_time = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        Date d;
        try {
            d = sdf.parse(user_time);
            long l = d.getTime();
            String str = String.valueOf(l);
            re_time = str.substring(010);
        catch (ParseException e) {
            e.printStackTrace();
        }
        return re_time;
    }
 
}
 
package com.my.base.study;

import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date; /**
* Created by chengtao on 17/12/16.
*/
public class TimeStudy {
public static void main(String[] args) {
getTimeByDate();
System.out.println("****************************");
getTimeByCalendar();
System.out.println("****************************");
addSub();
System.out.println("****************************");
change();
} public static void getTimeByDate(){
Date date = new Date();
DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
System.out.println(df1.format(date));
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
System.out.println(df2.format(date));
DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
System.out.println(df3.format(date));
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒)
System.out.println(df4.format(date));
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
System.out.println(df5.format(date));
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,上下午,时间(精确到分)
System.out.println(df6.format(date));
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
System.out.println(df7.format(date));
}
public static void getTimeByCalendar(){
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);//获取年份
int month=cal.get(Calendar.MONTH) +1;//获取月份
int day=cal.get(Calendar.DATE);//获取日
int hour=cal.get(Calendar.HOUR);//小时
int minute=cal.get(Calendar.MINUTE);//分
int second=cal.get(Calendar.SECOND);//秒
int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天
System.out.println("现在的时间是:公元"+year+"年"+month+"月"+day+"日 "+hour+"时"+minute+"分"+second+"秒 星期"+WeekOfYear); Calendar cal1 = Calendar.getInstance();
cal1.set(year,month,day,0,0,0);
System.out.println("date = " + cal1.getTime());
} public static void addSub (){
Calendar c = Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH)+1;
int date=c.get(Calendar.DATE);
System.out.println("今天是"+year+"年"+month+"月"+date+"日");
System.out.println("是今年的第"+c.get(Calendar.DAY_OF_YEAR)+"天");
System.out.println("c.getTime()的結果: "+c.getTime());
System.out.println("new Date()的結果: "+new Date());
c.add(Calendar.DATE, 30);//增加一天
System.out.println("30天后是"+c.getTime()); c.add(Calendar.DATE, -30);//增加一天
System.out.println("30天前是"+c.getTime()); c.add(Calendar.MONTH, 1);//增加一月
System.out.println("一个月后是"+c.getTime());
} public static void change(){
// (1) Calendar转化为Date()
Calendar cal1=Calendar.getInstance();
Date date1=cal1.getTime();
System.out.println( "Calendar转化为Date -- " +date1); // (2) Date转化为Calendar
Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
System.out.println( "Date转化为Calendar -- " +cal);
} }

Java中时间日期格式化的更多相关文章

  1. python中时间日期格式化符号

    python中时间日期格式化符号: import time print(time.strftime('%Y%H%M%S', time.localtime())) 运行结果: 2016092308 %y ...

  2. java中 时间/日期 的使用方法

    import java.util.*;    //引入date需要的包import java.text.SimpleDateFormat;//   引入格式化需要的包import java.util. ...

  3. python中时间日期格式化符号:

    %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数( ...

  4. python中时间日期格式化符号的含义

    %y   两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H    24小时制小时数(0-23) %I   12 ...

  5. Java 中的日期与时间

    Java 日期时间 标签 : Java基础 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含 ...

  6. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)

    转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...

  7. Java中的日期和时间

    Java中的日期和时间 Java在java.util包中提供了Date类,这个类封装了当前的日期和时间. Date类支持两种构造函数.第一个构造函数初始化对象的当前日期和时间. Date() 下面的构 ...

  8. 【java】JDK1.8时间日期库 新特性 所有java中时间Date的使用

    除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API.Java对日期, ...

  9. (转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)

    java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...

随机推荐

  1. ASP.NET MVC Global.cs - 应用程序事件

    一.Application_End Application_End:网站关闭,或重启时,会触发该方法 二.Application_Start       第一个访问网站的用户会触发该方法. 通常会在该 ...

  2. 3步完成chrome切换搜索引擎

    1.打开chrome://settings/,找到搜索 2.点击“管理搜索引擎”,出现弹窗. 增加搜索引擎,三个文本框分别输入:名称.快捷键.地址 3.在新的选项卡中,输入快捷键(如:github), ...

  3. 调整Linux磁盘分区的大小的方法

      昨天数据入库时,一直报错,说磁盘满了,,df -h    一看,发现/目录下只有50G空间,已使用49G:我的程序和dbss都安装在/目录下,ftp到的数据放在/data下的一个子目录下,分解完的 ...

  4. 看懂理解 keyboard中 , navigation的设置: 切换工作区和移动窗口到不同的工作区.

    navigation中, 主要有两个方面的内容: 移动窗口到工作区 的shortcuts 切换工作区的shortcuts 首先清楚: 工作区workspace, fedora 23中 好像只有上下方向 ...

  5. thinkphp- 许愿墙-1

    控制器的方法, 要显示的模板默认的跟方法名相同. 也可以不同, 但应该 仍然是对应文件夹下的html模板文件: $this->display('其他的模板html文件名, 不用加html扩展名' ...

  6. Kmeans算法的K值和聚类中心的确定

    0 K-means算法简介 K-means是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一. K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的 ...

  7. hdu4888 Redraw Beautiful Drawings 最大流+判环

    hdu4888 Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/6553 ...

  8. HTML5游戏设计与开发 小白7-9月的动态

    好久没有更新博客了,最近在努力修炼提升逼格,当然了还有个恶心的毕业论文... 当然啦...在写这个论文的时候也就是为了提升下自身的技术,毕竟我的公司也不是游戏公司,SO 我决定开发个手机游戏.然后考虑 ...

  9. 黑客攻防技术宝典Web实战篇(二)工具篇DVWA Web漏洞学习

    DVWA是一个学习Web漏洞的很好的工具. DVWA全程是Damn Vulnerable Web Application,还有一个跟它一样好的工具尽在http://www.360doc.com/con ...

  10. 什么是SEM?

    SEM是Search Engine Marketing的英文缩写,其中文意思就是搜索引擎营销.台湾和香港.澳门也称为搜寻销售,意思都差不多.SEM更多强调的是综合手段在搜索引擎上的企业传播和促进和销售 ...