1. Date
# 需要说明的是 Date 无时区,
# 但date.toString() 则是按当前 JVM 的默认时区来格式化的,也就是 TimeZone.getDefault() 获得的时区,
# 同时 date.toString() 是按照 "EEE MMM dd HH:mm:ss zzz yyyy" 来格式化的;
2. Date to String
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); String strDate = format.format(date);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = format.parse(strDate);
String strDate = "2013-07-17 10:12:15"; String fromTimeZone = "GMT+8"; String toTimeZone = "GMT+0"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); format.setTimeZone(TimeZone.getTimeZone(fromTimeZone)); Date date = format.parse(strDate); format.setTimeZone(TimeZone.getTimeZone(toTimeZone)); strDate = format.format(date); System.out.println(strDate);
SimpleDateFormat format1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.SIMPLIFIED_CHINESE); SimpleDateFormat format2 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); System.out.println(format1.format(new Date())); // 星期三 七月 17 10:57:50 CST 2013 System.out.println(format2.format(new Date())); // Wed Jul 17 10:57:50 CST 2013
Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, 1582); calendar.set(Calendar.MONTH, 9); calendar.set(Calendar.DAY_OF_MONTH, 4); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); System.out.println(format.format(calendar.getTime())); // 1582-10-04 calendar.add(Calendar.DAY_OF_MONTH, 1); // 增加一天 System.out.println(format.format(calendar.getTime())); // 1582-10-15# 参见: http://dlc.sun.com.edgesuite.net/jdk/jdk-api-localizations/jdk-api-zh-cn/builds/latest/html/zh_CN/api/java/util/GregorianCalendar.html
Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, 1986); calendar.set(Calendar.MONTH, 4); calendar.set(Calendar.DAY_OF_MONTH, 3); calendar.set(Calendar.HOUR_OF_DAY, 23); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(format.format(calendar.getTime())); // 1986-05-03 23:46:38 calendar.add(Calendar.HOUR_OF_DAY, 1); // 增加一个小时 System.out.println(format.format(calendar.getTime())); // 1986-05-04 01:46:38(中间跳过了 00:46:38)# 参见: http://baike.baidu.com/view/100246.htm