Java日期处理

public class SimpleDateFormat extends DateFormat

SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。

SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstancegetDateInstance getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。可以根据需要用 applyPattern 方法修改格式化方式。

SimpleDateFormat
函数的继承关系:

java.lang.Object
   |
   +----java.text.Format
           |
           +----java.text.DateFormat
                   |
                   +----java.text.SimpleDateFormat

下面是个小例子:
import java.text.*;
import java.util.Date;

/**
  SimpleDateFormat
函数语法:
 
  G
年代标志符
  y

  M

  d

  h
时 在上午或下午 (1~12)
  H
时 在一天中
(0~23)
  m

  s

  S
毫秒
  E
星期
  D
一年中的第几天
  F
一月中第几个星期几
  w
一年中第几个星期
  W
一月中第几个星期
  a
上午 / 下午 标记符
  k
时 在一天中
(1~24)
  K
时 在上午或下午
(0~11)
  z
时区

 */
public class FormatDateTime {

    public static void main(String[] args) {
        SimpleDateFormat myFmt=new SimpleDateFormat("yyyy
MMdd HHmmss");
        SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
        SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//
等价于
now.toLocaleString()
        SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy
MMdd HHmmss
E ");
        SimpleDateFormat myFmt4=new SimpleDateFormat(
                "
一年中的第 D 天 一年中第w个星期一月中第W个星期 在一天中k z时区
");
        Date now=new Date();
        System.out.println(myFmt.format(now));
        System.out.println(myFmt1.format(now));
        System.out.println(myFmt2.format(now));
        System.out.println(myFmt3.format(now));
        System.out.println(myFmt4.format(now));
        System.out.println(now.toGMTString());
        System.out.println(now.toLocaleString());
        System.out.println(now.toString());
    }   
   
}

效果:

2004
1216 172427
04/12/16 17:24
2004-12-16 17:24:27
2004
1216 172427秒 星期四
一年中的第 351 天 一年中第51个星期 一月中第3个星期 在一天中17 CST时区

16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004

下面是个JavaBean:
public class FormatDateTime {
   
    public static String toLongDateString(Date dt){
        SimpleDateFormat myFmt=new SimpleDateFormat("yyyy
MMdd HHmmss
E ");       
        return myFmt.format(dt);
    }
   
    public static String toShortDateString(Date dt){
        SimpleDateFormat myFmt=new SimpleDateFormat("yy
MMdd HHmm
");       
        return myFmt.format(dt);
    }   
   
    public static String toLongTimeString(Date dt){
        SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");       
        return myFmt.format(dt);
    }
    public static String toShortTimeString(Date dt){
        SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd HH:mm");       
        return myFmt.format(dt);
    }
   
    public static void main(String[] args) {

        Date now=new Date();

        System.out.println(FormatDateTime.toLongDateString(now));
        System.out.println(FormatDateTime.toShortDateString(now));
        System.out.println(FormatDateTime.toLongTimeString(now));
        System.out.println(FormatDateTime.toShortTimeString(now));
    }   
   
}
调用的main 测试结果:
2004
1216 173826秒 星期四
04
1216 1738

17 38 26 0965
04/12/16 17:38

 

 

 

 

 

 

 

 

package net.hfh;

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

public class DateFormat {

public static void main(String[] args) {

  long l1 = System.currentTimeMillis();
  Date date = new Date();// Date
的很多方法已经过时


  /*
   * SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   * String str = sdf.format(date);
   */
  //
与以上两句的作用相同

  String str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")
    .format(date);//
查看手册

  System.out.println(str);

  // System.out.println(System.currentTimeMillis());

  //
取出当前日期中的年月日等相关的信息

  Calendar c = Calendar.getInstance();//
创建一个实例

  int year = c.get(Calendar.YEAR);//
取得年份

  System.out.println(year);
  int month = c.get(Calendar.MONTH);//
取得月份

  System.out.println(month);

  //
转换从其它地方得到的日期,如从数据库中等如何操作。

  Calendar c1 = Calendar.getInstance();
  c1.set(2005, 4, 1);
  int year1 = c1.get(Calendar.YEAR);
  System.out.println("year1----" + year1);

  /*
   //
为什么不能正确的显示时间

   Date d = new Date(2004,1,3); Calendar c2 = Calendar.getInstance();
   c2.setTime(d); int year2 = c2.get(Calendar.YEAR);
   System.out.println(new SimpleDateFormat("yyyy").format(d));
   System.out.println(year2);
   */
 
  //
从数据库中取出时间并格式化

  /*
  Date date = rs.getDate("cdate");
  SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");//
此不能显示时,全相同

  System.out.println(sdf.format(date));
  */
 
  /*
  //
可以正确显示相关的日期与时间

  Timestamp ts = rs.getTimestamp("cdate");//
时间戳

  SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
  SimpleDateFormat sdf1 = new SimpleDateFormat("YYYY-mm-dd HH:mm:ss");
  System.out.println(sdf.format(ts));
  System.out.println(sdf1.format(ts));
  */
 
  //
取得当前时间的方法

  // System.currentTimeMillis();
  // Date d = new Date();
  // Calendar c2 = Calendar.getInstance();
 
  //
字符串变转为日期格式

  // String sdate = "2008-8-8";
  // java.sql.Date sd =
  // java.sql.Date.valueOf(sdate);//
此方法常用如:从数据库中取出的字符串转为时间格式

  // System.out.println("sd---" + sd);
  // String sdate1 = "2008-8-8 23:3:32.0";
  // Timestamp ts = Timestamp.valueOf(sdate1);
  // System.out.println("ts====" +ts);
 
  //
时区处理

  //
取得日本的时间

  TimeZone tzJapan = TimeZone.getTimeZone("Japan");//
取得时区

  Calendar cJapan = new GregorianCalendar(tzJapan);//
内部参数是ID要想取得ID可以用下面的方法

  System.out.println(cJapan.get(Calendar.HOUR_OF_DAY));
 
  //
取得各个有效
ID
  //
方法一

  String[] ss = TimeZone.getAvailableIDs();
  for(int i=0; i<ss.length; i++){
   System.out.println(ss[i]);
  }
  //
方法二

  /*
  for(String str2:TimeZone.getAvailableIDs()){
   System.out.println(str2);
  }
  */
 
  long l2 = System.currentTimeMillis();
  System.out.println("
执行时间为:" + (l2-l1) + "毫秒
");
}

long l2 = System.currentTimeMillis();
  System.out.println("
执行时间为:" + (l2-l1) + "毫秒
");
 
  //
long数转为日期格式

  String sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(Long.parseLong("1192578386734"));
  System.out.println(sdf);
  System.out.println("1192578386734--");
  //
把日期字符串转为long型数

  String str1 = "2007-10-17 07:46:26 734";
  try {
  
   long sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").parse(str1).getTime();
   System.out.println(sdf1);
  } catch (ParseException e) {
   e.printStackTrace();
  }

}



hibernate,struts,oracle
日期处理:yyyy-mm-dd hh:mm:ss.SSS的形式:

Form
与实体中均用java.sql.Timestamphbm中也须用java.sql.Timestamp就可,在数据库中用Date型就


可以
.
若处理成:yyyy-mm-dd则用java.sql.Date就可以,数据库中用Date就可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值