mysql是datetime类型,java是String类型,jsp页面上显示多了个“.0”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql是datetime类型,java是String类型,jsp页面上显示多了个“.0”相关的知识,希望对你有一定的参考价值。
找了好久,网上都是千篇一律的copy,说是下面的处理方式:
使用<s:date>标签,有一个format属性,就是用来输出指定时间格式的
例如:<s:date name="publishTime" format="yyyy-MM-dd HH:mm:ss" />
<s:date name="birthday" format="yyyy-MM-dd" />
yyyy-MM-dd年月日 HH:mm:ss时分秒
但要注意两个细微的地方,很多人都倒在这上面:
1、"yyyy-MM-dd”中的“MM”一定要大写,不然会不起作用或者时间显示不正常
因为在java中,大M表示“月(Month)",而小m表示"分"(minute)
2、注意的是后面的"HH"表示24小时制,而如果是"hh",则显示时为12小时制
楼主可以自己验证下~~
还有一点:s:date标签使用时,一定要是Date类型。
如果是String型,数值型等其他类型,可以用以下方法:
先在resource文件中定义如下:
format.date_medium=0,date,medium
format.date_ymd=0,date,yyyy/MM/dd
format.date_time=0,date,yyyy/MM/dd hh:mm
然后就可以自由的format了:
<s:text name="format.date_ymd">
<s:param name="value" value="salesDate"/>
</s:text>
但是我研究了许久,发现salesDate后台也得是date类型,如果我传个String类型,会报错“Cannot format given Object as a Date”
大家有知道真正的解决方案吗?
我想要的是jsp页面通过标签处理,不是在后台查询处理
后台 str.substring(0, 10)
在jsp页面 <%获取
然后substring
%>
但是这样你传值的时候就要用String 在页面接收也用String 如果非得用时间 那只能在jsp页面格式化 但是我个人觉得比较麻烦 建议使用String 参考技术B public void add(Emp emp)
getconn();
String sql="insert into emp (empno,ename,job,mgr,hiredate,comm,sal,deptno)" +
"values(?,?,?,?,?,?,?,?)";
try
stmt=conn.prepareStatement(sql);
stmt.setInt(1,emp.getEmpno());
stmt.setString(2, emp.getEname());
stmt.setString(3, emp.getJob());
stmt.setString(4, emp.getMgr());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date1 = null;
try
date1 = sdf.parse(emp.getHiredatestr());
catch (ParseException e)
// TODO Auto-generated catch block
e.printStackTrace();
java.sql.Date date2=new java.sql.Date(date1.getTime());
stmt.setDate(5, date2);
stmt.setString(6, emp.getComm());
stmt.setString(7, emp.getSal());
stmt.setInt(8, emp.getDeptno());
stmt.executeUpdate();
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();
closeall();
这是我前几天写的,把String类型转化为Date类型,用的是SimpleDateForma,
在为数据库表单建立实体类的时候,为Date 类型的hiredate,多增加了一个String类型的属性hiredatestr。
希望能对 你有用 参考技术C 自己重新格式化
~
~
~
~ 参考技术D
在你的实体类,getDate()方法中加入以下代码就可以了啊!
String str=“2011-11-11 22:22:22” 如何把str转换成datetime类型存入mysql中
要在JAVA中实现
mysql的datetime类型,其实就是string型。PHP:
使用int strtotime ( string $time [, int $now ] )函数转换为整数time类型。
插入时mysql时使用string date ( string $format [, int $timestamp ] )函数。
date("Y-m-d H:i:s", strtotime(str));
C#:
如果需要计算,先转DateTime:
DateTime dt = Convert.ToDateTime(str);
再DateTime转string:
dt.tostring() 参考技术A 直接向里存就可以,这样的格式是正常的'2011-11-11 22:22:22'
PHP也可以这样
$str = strval('2011-11-11 22:22:22');
$str = strtotime($str);
$time = date('Y-m-d H:i:s',$str);
echo $time; 参考技术B 多数方法是转为整型存入数据库
显示时再转回日期时间
strtotime($str)将字符串转为整型
date('Y-m-d H:i:s',$str)将整型转回时间
以上仅仅是php的方法
以上是关于mysql是datetime类型,java是String类型,jsp页面上显示多了个“.0”的主要内容,如果未能解决你的问题,请参考以下文章
求助!!如何在java代码中,将日期插入mysql数据库(对应字段类型是datetime),用JDBC连接数据库。
java mysql datetime 是java 中啥类型
怎么样将java中的date类型插入到mysql的datetime