我的数据是时间是 bigInter 类型
javaBean 是Long 类型 Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -7); Long start = c.getTime().getTime(); Date date = new Date();
Long end = date.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
// 获取start end 时间
//获取一个String 类型值 "2008-08-11"
String start_date = request.getParameter("start_date");
String end_date = request.getParameter("end_date");
//start date 是java.util.date类型
//查询结果是java.sql.date 类型 start_date end_date
Long s1 = (start_date == null ? start : ??
Long s2 = (end_date == null ? end : ???如何转换 java.sql.date 结果转换成 long 类型
javaBean 是Long 类型 Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -7); Long start = c.getTime().getTime(); Date date = new Date();
Long end = date.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
// 获取start end 时间
//获取一个String 类型值 "2008-08-11"
String start_date = request.getParameter("start_date");
String end_date = request.getParameter("end_date");
//start date 是java.util.date类型
//查询结果是java.sql.date 类型 start_date end_date
Long s1 = (start_date == null ? start : ??
Long s2 = (end_date == null ? end : ???如何转换 java.sql.date 结果转换成 long 类型
解决方案 »
- 帮忙看看applicationContext.xml
- 利用StrutsSpringTestCase类做测试的问题
- 出现了hql插入语句 却插入数据库失败
- ibatis调用过程,得不到返回
- java数组如何传递给javascript?
- Hibernate基本参数配置
- 求助 STRUTS应用mysql数据库的问题!!
- 求WEBLOGIC8。1的入门指南或者其他版本的也可以,先谢谢了
- 关于无状态的sessionBean!很奇怪的问题!精通的请进!
- 你们一般怎么debug EJB的组件?如果在jb7里运行一个ejb的容器好象太慢了.有什么好方法吗?
- 急求,正则表达式啊???(只能有数字,字母和冒号':')组成
- formbean组装问题
怎么弄啊 小弟都头大了
Date date2=sdf.parse(end_date);
java.sql.Date sqlDate = new java.sql.Date(date2.getTime());
Long s1 = sqlDate.getTime();
老是出错 郁闷
String str="2006-11-1";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
try {
java.util.Date uDate=sdf.parse(str);
java.sql.Date sqlDate=new Date(uDate.getTime());
System.out.println(sqlDate.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}sdf.parse的时候有个异常是要捕获的,然后就是你end_date的格式要和你format里面的格式"yyyy-MM-dd"的格式要一直 不然就会报转换异常。
good luck
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
这两个格式要正确,也就是如果你的format格式是yyyy/MM/dd
那么转换的时候就会报异常
但是如果你是yyyy-MM-dd,也就是和你的页面传过来的字符串的格式一致 比如说上面的str
就不会报异常 放个断点,看你传过来的end_data的格式是不是和你format里面的一致或者你报错报的是什么错,贴出来大家看看
java.text.ParseException: Unparseable date: "2008-08-01"
at java.text.DateFormat.parse(DateFormat.java:337)
at com.happygo.manager.web.struts.action.User_account_manageAction.list(User_account_manageAction.java:108)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)传过来格式正确 的
public static void main(String[] args) {
String str="2008-08-01";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
try {
java.util.Date uDate=sdf.parse(str);
java.sql.Date sqlDate=new Date(uDate.getTime());
System.out.println(sqlDate.getTime());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}这就奇怪了,我用你上面的时间测试过,没问题的啊
HttpServletRequest request, HttpServletResponse response) throws ParseException {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -7); Long start = c.getTime().getTime(); Date date = new Date();
Long end = date.getTime(); // 获取start end 时间 String start_date = request.getParameter("start_date");
String end_date = request.getParameter("end_date"); Long s1 = null;
if (start_date == null) {
s1 = start;
} else { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd "); Date date3 = sdf.parse(start_date); java.sql.Date sqlDate = new java.sql.Date(date3.getTime()); s1 = sqlDate.getTime();
}
Long s2 = null;
if (end_date == null) {
s2 = end;
} else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd "); Date date2 = sdf.parse(end_date); java.sql.Date sqlDate = new java.sql.Date(date2.getTime()); s2 = sqlDate.getTime();
} // date 类型转换lang类型 // 获取金额 充值总额 0 ,1 提现总额
// 充值总额
BigDecimal voucher_amount = this.userAccountService.search(s1, s2,
(Byte) (byte) 0);
request.setAttribute("userAmonut", voucher_amount);
// 提取总额
BigDecimal to_cash_amount = this.userAccountService.search(s1, s2,
(Byte) (byte) 1);
request.setAttribute("toCash", to_cash_amount);
// 用户金额情况
List list = this.accountLogService.search(s1, s2); for (int i = 0; i < list.size(); i++) {
Object[] userMoneys = (Object[]) list.get(i);
BigDecimal user_money = (BigDecimal) userMoneys[0]; // 用户可用余额
BigDecimal frozen_money = (BigDecimal) userMoneys[1];// 用户冻结金额
request.setAttribute("userMoney", user_money);
request.setAttribute("frozeMoney", frozen_money);
}
// 交易 金额和积分使用金额
List orderList = this.orderInfoService.search(s1, s2);
for (int i = 0; i < orderList.size(); i++) {
Object[] userMoneys = (Object[]) list.get(i);
BigDecimal surplus = (BigDecimal) userMoneys[0]; // 交易使用余额
BigDecimal integral_money = (BigDecimal) userMoneys[1]; // 积分使用余额
request.setAttribute("sur", surplus);
request.setAttribute("inte", integral_money);
}
request.setAttribute("start", start);
request.setAttribute("end", end);
return mapping.findForward("toList");
}
所以建议你写代码的时候 创建的时候要把包名家上才能区分到底是哪种date
像这种
Date date = new Date();
Date date3 = sdf.parse(start_date);
根本就不知道是哪种date。
看看你的这个format里面的字符串 多了一个空格
去掉
严重: Servlet.service() for servlet action threw exception
java.text.ParseException: Unparseable date: "2009-11-09"郁闷死了
你肯定是只改了一个地方
我测过你的代码 没问题的public static void main(String[] args)throws ParseException {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -7); Long start = c.getTime().getTime(); java.util.Date date = new java.util.Date();
Long end = date.getTime(); // 获取start end 时间 String start_date = "2008-10-08";
String end_date ="2008-10-09"; Long s1 = null;
if (start_date == null) {
s1 = start;
} else { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date date3 = sdf.parse(start_date); java.sql.Date sqlDate = new java.sql.Date(date3.getTime()); s1 = sqlDate.getTime();
}
Long s2 = null;
if (end_date == null) {
s2 = end;
} else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date date2 = sdf.parse(end_date); java.sql.Date sqlDate = new java.sql.Date(date2.getTime()); s2 = sqlDate.getTime();
}
System.out.println("s1:="+s1);
System.out.println("s2:="+s2); }
不过还有一个问题哈~ 我的数据库保存的是 1242140736 是2008-08-01
但是我页面选择js以后转换以后就不long的值就不不是这个了
但是你插入数据库的时候是从页面读的long插入的 应该不会不同吧没碰到过这种问题
你已差不多了,最后赋值时改一下啊Long s1 = (start_date == null ? start : java.sql.Date(start_date).getTime());
Long s2 = (end_date == null ? end : java.sql.Date(end_date).getTime());