读书人

关于日期类转换的有关问题

发布时间: 2012-10-08 19:54:56 作者: rapoo

关于日期类转换的问题

  • String startYear =?"";??
  • String stopYear =?"";??
  • String str1 =?"2005-01-01";??
  • String str2 =?"2005-01-31";??
  • SimpleDateFormat sdf =?new?SimpleDateFormat("yyyy-MM-dd");???
  • Date date1 =?new?Date();??
  • Date date2 =?new?Date();??
  • try?{??
  • ???? date1 = sdf.parse(str1);??
  • ???? date2 = sdf.parse(str2);??
  • ??????????????????
  • ???? startYear = sdf.format(date1);??
  • ???? stopYear = sdf.format(date2);??
  • ??????????????????????
  • }?catch?(ParseException e1) {??
  • ????// TODO Auto-generated catch block??
  • ???? e1.printStackTrace();??
  • }??
  • pstmt.setDate(1,?new?java.sql.Date(date1.getTime()));??
  • pstmt.setDate(2,?new?java.sql.Date(date2.getTime()));?

    一.获取系统当前时间:

    1.System.out.println(new Timestamp(new java.util.Date().getTime));????//包含时分秒

    2.System.out.println(new java.sql.Date(new java.util.Date().getTime)); ???//不包含时分秒

    3.通过格式化类获取任意格式的时间

    ? SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss SSS"); String time = sdf.format(Calendar.getInstance().getTime()); System.out.println(time);

    sql包的Date类没有无参的构造函数,而util的Date类有无参的构造函数

    java.util.Date date = new java.util.Date();是正确的???//Tue Jun 15 09:04:23 CST 2010

    java.sql.Date date = new java.sql.Date();是错误的

    但是sql包的Date有一个带long型参数的构造函数,因此可以使用以下方式

    ?

    ?

    ?java.sql.Date date = new java.sql.Date(new java.util.Date().getTime());?? //2010-6-17

    ?

    ?

    ?

    ?

    ?

    ?

    new java.util.Date():构造函数没有接受任何参数.?而这个构造函数在内部使用了System.currentTimeMillis()?方法来从系统获取日期. 下面是util包的Date的构造方法:

    public Date() { this(System.currentTimeMillis()); }

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    还发现一件怪异的事情:

    // String转化成date String str = "9-29-2001";
    System.out.println(java.sql.Date.valueOf(str));

    输出:

    0016-10-21

    真是奇怪.

    三. Date转化成String

    //Date转化成String: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");

    System.out.println(sdf.format(new Date()));

    输出:

    2010-06-17 16:30:21 781

    四. Timestamp转化成String

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒

    Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间

    String str = df.format(now);

    System.out.println(str);

    输出:

    2010-06-17 16:46:34

    五. String转化成Timestamp

    SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    java.util.Date date11 = df1.parse("2010-6-2 16:10:38.00");

    String time = df1.format(date11);

    Timestamp ts = Timestamp.valueOf(time);

    System.out.println(ts);

    输出:

    ?2010-06-02 16:10:38.0

  • 读书人网 >编程

    热点推荐