关于util.Date,sql.Date,sql.Time,sql.Timestamp以及他们和Clendar类的区别和联系

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateDemo {

    public static void main( String[] args ) {
        // TODO Auto-generated method stub

        /**
         * 下面四种都是string类型格式数据转换为 util.date, sql.date, sql.time,
         * sql.Timestamp四种类型的数据实例
         * 
         */
        // java.util.Date时间格式的转换,从字符串到Date类型转换,包含日期/时间数据
        //SimpleDateFormat类完成数据格式化,设置格式化模板
        SimpleDateFormat f_utilDate = new SimpleDateFormat(
                "yyyy-MM-dd hh:mm:ss");
        String str = "2011-5-31 14:40:50";
        try {
            Date utilDate = f_utilDate.parse(str);
            System.out.println(f_utilDate.format(utilDate));// 将一个date类型的数据按指定的pattern格式转换
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // java.sql.Date时间格式的转换, sql 中的date类型只有日期数据
        SimpleDateFormat f_sqlDate = new SimpleDateFormat("yyyy-MM-dd");
        java.sql.Date sqlDate = java.sql.Date.valueOf("2010-08-20");
        System.out.println(f_sqlDate.format(sqlDate));

        // java.sql.Time sqltime时间格式的转换,包含时间数据
        SimpleDateFormat f_sqlTime = new SimpleDateFormat("hh:mm:ss");
        java.sql.Time sqltime = java.sql.Time.valueOf("13:44:53");

        System.out.println(f_sqlTime.format(sqltime));

        // java.sql.Timestamp时间格式的转换,跟sql TIMESTAMP时间类型对应

        SimpleDateFormat f_timestamp = new SimpleDateFormat(
                "yyyy-MM-dd hh:mm:ss.SSS");
        java.sql.Timestamp timestamp = java.sql.Timestamp
                .valueOf("2010-08-20 14:06:27.186");
        System.out.println(f_timestamp.format(timestamp));

        /**
         * 四种数据类型util.date, sql.date, sql.time, sql.Timestamp之间的转换
         */

        System.out.println("四种数据类型之间的转换");

        // java.util.Date 转换成 java.sql.Date 格式
        try {
            SimpleDateFormat DateFormate = new SimpleDateFormat(
                    "yyyy-MM-dd hh:mm:ss");
            java.util.Date date1 = DateFormate.parse("2011-5-31 14:40:50");
            java.sql.Date sqlDate1 = new java.sql.Date(date1.getTime());
            System.out.println("java.util.Date 转换成 java.sql.Date 格式:"
                    + DateFormate.format(sqlDate1));
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        // java.sql.Date 转换成 java.util.Date 格式
        java.sql.Date sqlDate1 = java.sql.Date.valueOf("2005-12-12");
        java.util.Date utilDate1 = new java.util.Date(sqlDate1.getTime());// getTime函数返回子1970年1-1凌晨到现今过去的毫秒数
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println("java.sql.Date 转换成 java.util.Date 格式:"
                + format.format(utilDate1));
        // java.util.Date转换java.sql.Timestamp

        // java.util.Date转换java.sql.Time
        System.out.println("sql time 时间数据"
                + new java.sql.Time(new java.util.Date().getTime())
                .toString());
        System.out.println("sql timestamp 日期/时间(包含毫秒)"
                + new java.sql.Timestamp(new java.util.Date().getTime())
                        .toString());

        Timestamp timestamp1 = new Timestamp(System.currentTimeMillis());
        // 我们可以使用DateFormat处理字符串来定义时间日期的格式
        // 注:String都是先转换为java.util.Date,然后再转换成所需的格式


        /**
         * date 和calendar类型之间区别
         */
        // date代表当前日期和时间
        Date date = new Date();
        System.out.println(date);

        // calendar是一个新的日期时间类,本身是一个抽象类
        /**
         * Calendar 在 Java 中是一个抽象类(Abstract Class),GregorianCalendar
         * 是它的一个具体实现。Calendar.getInstance()中所获得的实例就是一个"GreogrianCalendar"对象。
         */
        Calendar calendar = Calendar.getInstance();// 返回一个基于当前系统时区和地区的日历类
        System.out.println(calendar.get(Calendar.MONTH) + 1);// 返回当前的月份,返回的月份数字和实际相比小1
        // calendar.add(Calendar.DAY_OF_MONTH, 2);//对构建的calendar实例的一些属性字段增加或者删除
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));// 返回当天是全年第几天
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));// 返回当天是这个月第几天

        // calendar.setTime(new
        // Date());用date实例数据设置calendar实例字段属性,calendar没有一个静态构造函数接受date实例

    }

}

参考文献
关于calendar解释
关于date
date

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值