各种类型转为Date

最近遇到个问题,就是Java的Excel导入时,对Excel中的日期做处理,常规模式用下面这种方法处理

HSSFCell birthDateCell = row.getCell(col++);

Date date = birthDateCell.getDateCellValue();

今天推荐下面这种做法:

首先定一个方法,做返回date类型,需要传object值类型

public static Date getDate(Object o)
  {
    if (o == null)
      return null;
    if (o instanceof Date)
      return ((Date)o);
    if (o instanceof String)
      return getDate(String.valueOf(o));
    if (o instanceof Timestamp)
      return new Date(((Timestamp)o).getTime());
    if (o instanceof Date)
      return new Date(((Date)o).getTime());

return null;

}

或者这样

public static Date getDate(String dateStr)

{
    Date temp1 = null;
    if (dateStr == null)
      return null;
    if (dateStr.equals(""))
      return null;
    SimpleDateFormat formatter = null;
    try {
      if (dateStr.indexOf(" ") != -1) {
        String[] aa = StringUtils.split(dateStr, ":");
        if (aa.length == 3)
          formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        else if (aa.length == 2)
          formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        else
          formatter = new SimpleDateFormat("yyyy-MM-dd HH");

}
      else if (dateStr.indexOf("-") == -1) {
        formatter = new SimpleDateFormat("yyyyMMdd");
      } else {
        formatter = new SimpleDateFormat("yyyy-MM-dd");
      }

temp1 = formatter.parse(dateStr);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return temp1;
  }

然后做Java的Excel导入时,就可以操作时间了

HSSFCell registerTimeCell = row.getCell(col++);

Date date = DateUtil.getDate(getCellValue(registerTimeCell));

把上面的2个 getDate方法放到你定义的类里面去,方便使用

时间: 2024-10-26 22:16:50

各种类型转为Date的相关文章

MySQL中,把varchar类型转为date类型

如下表: 先使用str_to_date函数,将其varchar类型转为日期类型,然后从小到大排序 语法:select str_to_date(class_time,'%Y%m%d %H:%i:%s') a from a order by  a desc ;

json返回date类型转为字符串

js代码如下: Date.prototype.format = function(format) { /*     * format="yyyy-MM-dd hh:mm:ss";     */    var o = {        "M+" : this.getMonth() + 1,        "d+" : this.getDate(),        "h+" : this.getHours(),        &q

Oracle 日期型 将timestamp类型转换为date类型

Oracle将timestamp类型转换为date类型有三种方法 1.使用to_char先转为字符型,在使用to_date再转为日期型 select to_date(to_char(systimestamp,'yyyy/mm/dd hh24:mi:ss'),'yyyy/mm/dd hh24:mi:ss') from dual; 2.使用SYSTIMESTAMP+0隐式转换 select systimestamp+0 from dual;                    --oracle会自

.NET枚举类型转为List类型

如图所示这个竞卖状态,原先是在前端界面通过html代码写死的几个状态,现在需要改为动态加载.这个几个状态是定义的枚举类型. 1:定义一个枚举类型 /// <summary>    /// 资源状态    /// </summary>    public enum ResourceState    {        /// <summary>        /// 下架        /// </summary>        [Description(&qu

【JavaScript】JS将Java的Timestamp转为Date类型

遇到一个小需求,由于要填充日期插件里的数据,前台要把java后台传来的Date类型的数据转成YYYY-MM-DD格式的时间数据.通过json传输,Java的Date类型的数据自动转成了时间戳,例如 “1470672000000”. js处理代码: function formatDate(date) { dates = date.split("/"); if(dates.length == 3) { if(dates[1].length == 1) { dates[1] = "

oracle中时间戳转为Date类型的数据

问题描述: 一个表中原本应该存放date类型的数据,但是不知道之前哪位大仙把两个字段的类型建成了NUMBER类型的了,这样在后台看时间肯定不方便.现在需要改成date类型,但是现在库中是有数据的,不能直接从NUMBER改为DATE.所以需要建立先创建两个DATE类型的临时字段,然后把对应字段的数据转换为Date类型的数据之后存到新字段上面,最后删除老字段,将新字段改名为老字段. 一.新建两个临时字段 ALTER TABLE CS_USER ADD (CREATEDATE1 DATE,OPERAT

从Date类型转为中文字符串

//主方法 public static String DateToCh(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int day = cal.get(Calendar.DAY_OF_MONTH); return getYear(year) + ge

java中存储mysql数据库时间类型【date、time、datetime、timestamp】

在MySQL中对于时间的存储自己见表的时候都是设置的varchar类型的,感觉挺方便的. 昨天拿别人建好的表写代码,发现这张表中时间类型为datetime的,凭感觉试了一下不行,网上查了刚开始试了好几个都是不对的,一脸懵逼. -----------------------------------------------------------------------------------------------------------------------------------------

mysql中的时间类型datetime,date,time,year,timestamp小知识点

1.datetime,date,time,year四个类型的值,可以手动输入,也可以调用函数获得值 ① 手动输入,格式如下: datetime "2016-6-22 14:09:30" date "2016-6-22" time "14:09:30" year "2016" 如上所述,手动输入的时候,直接可以输入如上格式的字符串,注意需要加引号.其中日期和时间中的分隔符(日期的短横线"-",时间的冒号&qu