问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java SimpleDateFormat 解析带有AM或PM的日期字符串时抛出异常

发布网友 发布时间:2024-10-08 12:57

我来回答

1个回答

热心网友 时间:2024-10-27 15:29

Java中格式化日期时间的类:SimpleDateFormat 用法详解
2009-07-13 00:09

在 Java 应用中,格式化日期时间通常会用到 SimpleDateFormat 类
public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。
SimpleDateFormat函数的继承关系:
java.lang.Object
|
+----java.text.Format
|
+----java.text.DateFormat
|
+----java.text.SimpleDateFormat
下面是个小例子:
import java.text.*;
import java.util.Date;
/**
SimpleDateFormat函数语法:

G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
*/
public class FormatDateTime {
public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("年MM月dd日 HH时mm分ss秒");
SimpleDateFormat myFmt1=new SimpleDateFormat("/MM/dd HH:mm");
SimpleDateFormat myFmt2=new SimpleDateFormat("-MM-dd HH:mm:ss");//等价于now.toLocaleString()
SimpleDateFormat myFmt3=new SimpleDateFormat("年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
Date now=new Date();
System.out.println(myFmt.format(now));
System.out.println(myFmt1.format(now));
System.out.println(myFmt2.format(now));
System.out.println(myFmt3.format(now));
System.out.println(myFmt4.format(now));
System.out.println(now.toGMTString());
System.out.println(now.toLocaleString());
System.out.println(now.toString());
}

}
效果:
2004年12月16日 17时24分27秒
04/12/16 17:24
2004-12-16 17:24:27
2004年12月16日 17时24分27秒 星期四
一年中的第 351 天 一年中第51个星期 一月中第3个星期 在一天中17时 CST时区
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004
下面是个JavaBean:
public class FormatDateTime {

public static String toLongDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("年MM月dd日 HH时mm分ss秒 E ");
return myFmt.format(dt);
}

public static String toShortDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("年MM月dd日 HH时mm分");
return myFmt.format(dt);
}

public static String toLongTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");
return myFmt.format(dt);
}
public static String toShortTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("/MM/dd HH:mm");
return myFmt.format(dt);
}

public static void main(String[] args) {
Date now=new Date();
System.out.println(FormatDateTime.toLongDateString(now));
System.out.println(FormatDateTime.toShortDateString(now));
System.out.println(FormatDateTime.toLongTimeString(now));
System.out.println(FormatDateTime.toShortTimeString(now));
}

}
调用的main 测试结果:
2004年12月16日 17时38分26秒 星期四
04年12月16日 17时38分
17 38 26 0965
04/12/16 17:38

在java中取得当前的系统时间并且转化成自己想要的格式
需要引进 java.util.Calendar 和 java.text.SimpleDateFormat 这两个类:
Calendar rightNow = Calendar.getInstance();
SimpleDateFormat fmt = new SimpleDateFormat("MMddhhmmss");
String sysDatetime = fmt.format(rightNow.getTime());
可以对 new SimpleDateFormat("MMddhhmmss") 中引号里面的格式进行编辑,转换成自己相要的格式,比如还可以转
换成 new SimpleDateFormat("/MM/dd hh:mm:ss ") 的格式。追问滚

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
生物特征识别技术所研究的生物特征包括哪些? 精通CFD工程仿真与案例实战:FLUENT GAMBIT ICEM CFD Tecplot目录 电脑加号怎么打出来电脑号键怎么打出来 刚买的苹果6去查序列号是国行的,可是过几天自己刷了机就原形毕露,完全... 苏宁易购上的手机都是正品行货吗 喻强声是喻政声的弟弟吗 从虹桥机场怎样去乌镇 上海虹桥国际机场2号航站楼开车到乌镇怎么走 169cm是多少米 电脑没有核心显卡能开机吗电脑没有显卡能开机吗 文竹长大了怎么处理 文竹如何移植 文竹怎么移植(文竹移栽是不是要浇水不管干不干) 不同材质的毛领能否直接水洗? enthusiasm怎么读? 小学教育专业考研科目有数学吗 格力空调h6是什么故障 格力空调的保养方法有哪些 本科是小学教育专业的学生考研适合考什么 充磁方式:径向充磁 形状:环形 尺寸:外径OD=120,内径ID=70,厚度T=30... 五年级语文第三单元测验题试卷发下来了,王东同学发现老师改错了一道题... 四川省资阳市安岳县两板桥镇水力局投诉电话 书法入门,楷书入门,楷书的点画 QQ音乐不显示在听歌怎么办? ...搞笑点的,最好是穿越的O(∩_∩)O谢谢 邮箱:jw1997129@yaho.cn... ...我发一份吗?这是我们选修让写的,谢谢了!我的邮箱825820670@qq.com... ...LINK副路由DLINK在主路由中显示WDS已经连接成功,但是连接副路由为什 ... 西安哪些好玩的地方吗 兵马俑景区好玩吗 ...我要上语文教育 学前教育 初等教育 专科就好 成都大专生,有普通话2级乙等证书,能不能考教师资格证 ...s) DateTime.Parse (String, IFormatProvider, DateTimeStyles)_百 ... @DateTimeFormat 只能把前台的String转换成Date吗,可以把前台的Sting... 侧方位停车进技巧 发光二极管是正极还是负极? 怎样判断发光二极管是正极还是负极? 二极管识别 一个芒果tv会员账号可以登录两个机吗? ...女儿在解放前出嫁,解放后土地改革时父子分得4间房子。后来儿子出外... 布偶和美短哪个好养 双重国籍国籍冲突 中医去色斑的三种有效方法是什么? ...请问一下我改了身份证号码之后我的征信报告会显示我欠银行的贷_百度... 总府路2号时代广场有没有宽带 成都火车北站到锦江区总府路2号坐几路公交车到时代广场B座位2012法国... 迪奥和香奈儿护肤品哪个好 香奈儿和迪奥护肤品哪个好 太阳能热水器为什么容易冻住? 五年级下册尖子生题库语文157页妙笔生花 尖子生题库升级版五年级语文下第三课第7题的答案 守夜的灵山是谁的作品