JavaSimpleDateFormat中英⽂时间格式化转换SimpleDateFormat是⼀个以与语⾔环境有关的⽅式来格式化和解析⽇期的具体类。它允许进⾏格式化(⽇期 -> ⽂本)、解析(⽂本 -> ⽇期)和规范化。
SimpleDateFormat使得可以选择任何⽤户定义的⽇期-时间格式的模式。但是,仍然建议通过DateFormat中
的getTimeInstance、getDateInstance 或 getDateTimeInstance 来创建⽇期-时间格式器。每⼀个这样的类⽅法都能够返回⼀个以默认格式模式初始化的⽇期/时间格式器。可以根据需要使⽤applyPattern ⽅法来修改格式模式。
⽇期和时间模式
字母⽇期或时间元素表⽰⽰例
G Era标志符Text
y年Year1996; 96
M年中的⽉份Month July; Jul; 07
w年中的周数Number27
W⽉份中的周数Number2
D年中的天数Number189
string转date的方法d⽉份中的天数Number10
F⽉份中的星期Number2
E星期中的天数Text Tuesday; Tue
a am/pm 标记Text PM
H⼀天中的⼩时数(0-23)Number0
k⼀天中的⼩时数(1-24)Number24
K am/pm 中的⼩时数(0-11)Number0
h am/pm 中的⼩时数(1-12)Number12
m⼩时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978
z时区General time zone Pacific Standard Time; PST; GMT-08:00
Z时区RFC 822 time zone-0800
SimpleDateFormat使⽤⽅法
根据上⾯的的“⽇期和时间模式”,设定需要匹配的模式,可以实现String与Date类型的互转,例如:
String类型的时间转换成Date类型时间,⽐较常⽤的⼏种时间格式转换如下:
a. 时间格式: “2015-08-28”, 模式: “yyyy-MM-dd”
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = dateFormat.parse("2015-08-28");
b. 时间格式: “2015-08-28 18:28:30”, 模式: “yyyy-MM-dd HH:mm:ss”
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dateFormat.parse("2015-08-28 18:28:30");
c. 时间格式: “2015-8-28”, 模式: “yyyy-M-d”
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-d");
Date date = dateFormat.parse("2015-8-28");
d. 时间格式: “2015-8-28 18:8:30”, 模式: “yyyy-M-d H:m:s”
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-d H:m:s");
Date date = dateFormat.parse("2015-8-28 18:8:30");
e. 时间格式: “Aug 28, 2015 6:8:30 PM”, 模式: “MMM d, yyyy h:m:s aa”
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM d, yyyy h:m:s aa", Locale.ENGLISH);
Date date = dateFormat.parse("Aug 28, 2015 6:8:30 PM");
f. 时间格式: “Fri Aug 28 18:08:30 CST 2015”, 模式: “EEE MMM d HH:mm:ss ‘CST’ yyyy”
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM d HH:mm:ss 'CST' yyyy", Locale.ENGLISH);
Date date = dateFormat.parse("Fri Aug 28 18:08:30 CST 2015");
Date类型的时间转换成String类型时间
这是“String类型的时间转换成Date类型时间”的逆向操作,只要将Date date = dateFormat.parse([String型时间]);换成String date = dateFormat.format([Date型时间]);即可。例如,将当前时间格式化成[yyyy年M⽉d⽇]的形式:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年M⽉d⽇");
String date = dateFormat.format(new Date());
注:我们在做时间格式转换时,主要是对匹配时间格式的模式;另外,英⽂格式的时间转换时需要带上Locale.ENGLISH,否则会转换失败,因为它默认的是本地化的设置,除⾮你的操作系统是英⽂的,总之时间转换时需要时间格式与模式保持⼀致。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论