关于Date,时间戳(long),String类型之间的相互转换,主要是用到类SimpleDateFormat.
先介绍SimpleDateFormat类的一些常见格式:
1.参数:
code |
describe |
Format |
example |
G |
Era designator | Text | AD |
y |
Year | Year | 1996 ; 96 |
Y |
Week year | Year | 2009 ; 09 |
M |
Month in year | Month | July ; Jul ; 07 |
w |
Week in year | Number | 27 |
W |
Week in month | Number | 2 |
D |
Day in year | Number | 189 |
d |
Day in month | Number | 10 |
F |
Day of week in month | Number | 2 |
E |
Day name in week | Text | Tuesday ; Tue |
u |
Day number of week (1 = Monday, ..., 7 = Sunday) | Number | 1 |
a |
Am/pm marker | Text | PM |
H |
Hour in day (0-23) | Number | 0 |
k |
Hour in day (1-24) | Number | 24 |
K |
Hour in am/pm (0-11) | Number | 0 |
h |
Hour in am/pm (1-12) | Number | 12 |
m |
Minute in hour | Number | 30 |
s |
Second in minute | Number | 55 |
S |
Millisecond | Number | 978 |
z |
Time zone | General time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z |
Time zone | RFC 822 time zone | -0800 |
X |
Time zone | ISO 8601 time zone | -08 ; -0800 ; -08:00 |
2.函数:
Date parse(String):把时间样式的字符串按照SimpleDateFormat规定的格式转化为Date
案例:
/* * 将date类型转化为某规定格式 * SimpleDateFormat 定义自己想要的格式 * 注意:若要在时间中插入普通字符,加上单引号''即可,eg:下列函数中的'T'和'Z',将会输出T字符和Z字符 */ private static void Date2Format(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'"); Date date=new Date(); System.out.println("现在时间:\t"+date); System.out.println("格式化:\t"+sdf.format(date)); }
运行结果:
现在时间: Wed Mar 02 14:42:15 CST 2016
格式化: 2016-03-02T14:42:328Z
String format(Date):将date转化为string类型
案例:
/* * 将某格式的字符串时间转化为时间格式 * SimpleDateFormat定义为原时间字符串的格式,eg:sdf的格式定义 */ private static void Format2Date(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); String strDate="2016-03-02T14:27:799Z"; try { System.out.println("转化为date类型:"+sdf.parse(strDate)); System.out.println("再转化为自定义格式:"+sdf1.format(sdf.parse(strDate))); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
运行结果:
转化为date类型: Wed Mar 02 14:27:00 CST 2016 再转化为自定义格式: 2016-03-02
程序代码:
package Test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author * @version 创建时间: * */ /* * SimpleDateFormat 主要是两个方法: 1.String format (Object obj) 将时间格式的object格式化为自定义格式 * 2.Date parse(String source) 将时间格式的字符串转化为时间格式 */ public class DateFormat { /* * 将date类型转化为某规定格式 SimpleDateFormat 定义自己想要的格式 * 注意:若要在时间中插入普通字符,加上单引号''即可,eg:下列函数中的'T'和'Z',将会输出T字符和Z字符 */ private static void Date2Format() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'"); Date date = new Date(); System.out.println("现在时间:\t" + date); System.out.println("格式化:\t" + sdf.format(date)); } /* * 将某格式的字符串时间转化为时间格式 SimpleDateFormat定义为原时间字符串的格式,eg:sdf的格式定义 */ private static void Format2Date() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); String strDate = "2016-03-02T14:27:799Z"; try { System.out.println("转化为date类型:\t" + sdf.parse(strDate)); System.out.println("再转化为自定义格式:\t" + sdf1.format(sdf.parse(strDate))); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* * 测试主函数 */ public static void main(String[] args) throws ParseException { Date2Format(); Format2Date(); } }