SimpleDateFormat出错

今天写了一个SB代码,就是字符串“2014-04-03”转换为java.sql.Date.因为java.sql.Date extends
java.util.Date.所以一般的思路是先将String 变为java.util.Date,然后再创立java.sql.Date..代码如下:

    SimpleDateFormat sdf = new SimpleDateFormat("YY-MM-dd");
java.util.Date utilDate = sdf.parse("2014-04-05");
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate toString is " + utilDate.toString());
System.out.println("sqlDate toString is " + sqlDate.toString());

输入结果是:

utilDate toString is Sun Dec 29 00:00:00 CST 2013
sqlDate toString is 2013-12-29

日期从2014-04-05变成了2013-12-29.问题就出现在

SimpleDateFormat sdf = new SimpleDateFormat("YY-MM-dd");

简单说一下:yyyy代表年,MM代表月,dd代表天,HH代表小时,mm代表分钟,ss代表秒。初始化SimpleDateFormat时指定pattern,然后对输入的字符串进行逐个解析。这里yyyy误写为YY,虽然我知道API中注释‘Y’意味着Week
Year,但是我不知道怎么赋值的,总之,没有报错,但是时间发生了变化。

时间: 2024-07-30 12:00:16

SimpleDateFormat出错的相关文章

Java大牛养成记(6)——将订单提交到数据库出错(Could not insert)

背景:SSH视频真是个强大的视频,里面涉及的知识广,符合当今的网商趋势.视频里面的老师思路清晰,分析需求也相当了得.当然,跟着这个视频的思路走,自己很容易理解里面的内容.但是跟着走也能出错,我也是醉了,下面介绍一下我的奇葩经历. 一.问题出世 将订单提交到数据库的时候出现了下面的错误,说什么不能将数据插入到数据库中,刚开始的时候以为是自己写错了,反复查询多遍,但是从vo到dao到service到action,在就是JSP页面.applicationContext.xml和Struts.xml都没

Java的SimpleDateFormat类

SimpleDateFormat date --> text Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String strDate = sdf.format(now); System.out.println(strDate); Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat

SimpleDateFormat格式化日期以及日期的相关操作

一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在Java中,操作日期主要涉及到一下几个类: 1.java.util.Date 类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的把日期解释为年.月.日.小时.分钟和

Java获取某年某季度的第一天出错

1.错误描述 Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date at java.text.DateFormat.format(Unknown Source) at java.text.Format.format(Unknown Source) at com.you.freemarker.model.FirstDayOfQuarter.ge

《java多线程编程核心技术》----simpleDateFormat非线程安全

类simpleDateFormat主要负责日期的转换和格式化,但在多线程的环境中,使用此内容容易造成数据转换以及处理的不准确, 因为simpleDateFormat类并不是线程安全的. public class MyThread extends Thread { private SimpleDateFormat sdf; private String dateString; public MyThread(SimpleDateFormat sdf, String dateString) { su

Java-JUC(十四):SimpleDateFormat是线程不安全的

SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个SimpleDateFormat实例对日期进行解析.格式化都会导致程序出错,接下来就讨论下它为何是线程不安全的,以及如何避免. 问题复现 编写测试代码如下: private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); public static void m

微信支付错误两个问题的解决:curl出错,错误码:60

如下是运行微信支付测试代码时出错代码: Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99 Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:60' in D:\wwwroot\weixinpa

maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理

maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF

10.8.5如何升级(app store 出错 请稍后重试 100)

出现问题:苹果以前的老版本,OS X 10.8或是10.8.5在当年提示你升级,你又任性没升级的时候,拖过那阵,你再想升级,就是各种报复.进app store下载或是更新东西都是弹出app stpre 出错,请稍候重试 (100),然后再提示说此系统不支持银联. 现在已经是OS X 10.11了,今天接手了一个老古董,系统才OS X 10.8,按照提示升到了OS X 10.8.5,之后不管怎么点,都没法,百度了一下,10.8.5升级,瞎折腾了好久,网上的方法就一个,搞个安装包.最后还是折腾出来了