date 集成 ate-集成java.util.Date的困惑

问题描述

集成java.util.Date的困惑

一个类集成了java.util.Date
public class DBDate extends Date implements IDBDate {

private static final long serialVersionUID = 1722199654569062027L;
private Date date ;
public DBDate(Date dateParam) {
    this.date =  dateParam;
}

public String toString() {

    if(date == null)
        return null;

    if(String.valueOf(date).indexOf(":") > -1){
        return DateUtil.formatDate(date, DateUtil.TIME_FORMAT);
    }else{
        return DateUtil.formatDate(date, DateUtil.DATE_FORMAT);
    }

}

}

然后写测试类。
public static void main(String[] args) {
Date date = new Date();
date.setTime(date.getTime() - Integer.MAX_VALUE);
System.out.println(DateUtil.formatDate(date, DateUtil.TIME_FORMAT));

    DBDate dbdate = new DBDate(date);
    System.out.println(DateUtil.formatDate(dbdate, DateUtil.TIME_FORMAT  ) );

}

输出的结果不同了。

2015-03-25 04:59:42
2015-04-19 01:31:06

第二个永远是当前时间。
是因为第二个输出,只是给DBDate的date变量赋值而已,
以上的代码第二个输出也要和第一个一样,应该怎么改造呢?
本来是想要实现Date接口的,但它是一个普通bean

解决方案

可以了。不需要变量date.直接从父类获取

解决方案二:

new DBDate().toString();

解决方案三:

DateUtil.formatDate是直接取传入对象的gettime的,和tostring没关系。
另外,继承后就是date,date的公共方法属性和转换都能使用。,没必要再弄个内部变量做date了,再定义一个date内部变量反而有问题。

时间: 2024-08-22 14:54:41

date 集成 ate-集成java.util.Date的困惑的相关文章

Java Date Time 教程-java.util.Date

原文链接 作者:Jakob Jenkov  译者:魏嘉鹏 Java的java.util.Date类是Java最初的时间类之一.今天该类的大部分方法已不推荐使用,取而代之的是java.util.Calendar类.不过你仍然可以使用java.util.Date类去表示某个时间.下面是一个如何实例化java.util.Date的例子: java.util.Date date = new java.util.Date(); Date实例包含了当前时间作为它的日期和时间.你可以通过getTime()方法

hibernate中java.util.Date类型映射

在Hibernate中对于java.util.Date类型的映射为: java类型 Hibernate类型 Mysql类型 java.util.Date.java.sql.Date date DATE java.util.Date.java.sql.Time time TIME java.util.Date.java.sql.Timestamp timestamp TIMESTAMP 如果使用timestamp作为Date类型映射时,具体代码如下: Java代码 public class Use

dwr返回时间报错-Error marshalling java.util.Date: For input string: "2013-09-10%2013%3A09"

问题描述 Error marshalling java.util.Date: For input string: "2013-09-10%2013%3A09" 时间文本框: 通过dwr获取res,向表单传值: res[0] = [{devNo:res[0].devNo,sleepTime:res[0].sleepTime,syncTime:formatDate(res[0].syncTime,'yyyy-mm-dd HH:nn'),safeTime:formatDate(res[0].

eclipse-菜鸟一枚~tv.setText("Hello Android-" + new java.util.Date());这个一直报错滴说

问题描述 菜鸟一枚~tv.setText("Hello Android-" + new java.util.Date());这个一直报错滴说 小女女是菜鸟,最近刚开始看Android,这是一段疯狂Android讲义里面的代码,想试试看,发现会一直报错滴说 package com.example.helloworld; import android.app.Activity; import android.os.Bundle; import android.view.Menu; impo

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结

java.util.Date.java.sql.Date.java.sql.Time.java.sql.Timestamp区别和总结   java.lang.Object  ....|__java.util.Date  ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time [父类]java.util.Date日期格式为:年月日时分秒  [子类]java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据]  [子类

ibatis-iBATIS 將model 中的java.util.date類型做insert時候提示無效列類型問題

问题描述 iBATIS 將model 中的java.util.date類型做insert時候提示無效列類型問題 model 的某一個字段A在為java.util.Date,對應table中的data類型 可為空 但是在做inert動作的時候,如果model中的A=null,插入就會出現無效的列類型的提示,為什麼.... 解决方案 ibatis 无效列类型 解决方案二: 当你插入时null 识别改字符类型是不是date类型,你可以写动态的sql语句如 <isNotNull prepend="

hibernate操作java.util.Date和java.sql.Date

  Entity类 public class Student {     public Date birth;     // java.util.Date      ................ }   Action Student s = new Student(); s.setBirth(new Date());    // 这里还是java.util.Date add(s); .........................     那么我们知道,JDBC中存入数据库的应该是java

Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property &#039;xxx&#039;: no matching editors or conversion strategy found

今天在完成项目的时候遇到了下面的异常信息: 04-Aug-2014 15:49:27.894 SEVERE [http-apr-8080-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [cms] in context with path [/cms] threw exception [Request processing failed; nested excep

HV000030: No validator could be found for type: java.util.Date.

问题描述 也照着demo写了个StringToDateConverter implements Converter<String, Date>,xml也跟着配置了,bean类如下public class SearchBookableRoom {@NotBlank(message="开始日期必须指定")@Future(message="不支持当前指定的开始时间")@DateTimeFormat(pattern="yyyy-MM-dd HH:mm&