码迷,mamicode.com
首页 > 编程语言 > 详细

Java中时间日期格式化

时间:2015-12-23 07:05:53      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:

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毫秒

         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;
    }
 
}

 

 

  

Java中时间日期格式化

标签:

原文地址:http://www.cnblogs.com/ctaixw/p/5068717.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!