既然无法摆脱时间,为何不设法简化时间处理?
https://www.ibm.com/developerworks/cn/java/j-jodatime.html
import org.joda.time.DateTime; import java.util.Calendar; import java.util.Date;
public class JodaTimeTest { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); DateTime dateTime = new DateTime(new Date()); DateTime dateTime_1 = dateTime.plusMonths(1).plusDays(3).plusHours(-8);//随便++--日期,想怎么操作怎么操作 System.out.println(dateTime_1.toString("yyyy-MM-dd HH:mm:ss")); //toString转为字符串的时候,可以执行你想要输出的格式。 calendar.setTime(dateTime_1.toDate());//可以和jdk原生的日期类互操作 } }
代码实例:
public static String formatDateFriendly(Date d) { if (null == d) { return ""; } return new DateTime(d).toString("yyyy年MM月dd日"); } public static String formatDateTime(Date d) { if (null == d) { return ""; } return new DateTime(d).toString("yyyy-MM-dd HH:mm:ss"); } public static String formatTimestamp(Date d) { if (null == d) { return ""; } return new DateTime(d).toString("yyyyMMddHHmmssSSS"); } public static String formatTime(Date d) { if (null == d) { return ""; } return new DateTime(d).toString("HH:mm:ss"); } public static String formatDate(Date d) { if (null == d) { return ""; } return new DateTime(d).toString("yyyy-MM-dd"); } public static String formatSimDate(Date d) { if (null == d) { return ""; } return new DateTime(d).toString("yyyyMMdd"); } public static String formatSimMonth(Date d) { if (null == d) { return ""; } return new DateTime(d).toString("yyyyMM"); } public static Date parseDate(String s) throws ParseException { if (null == s) { return null; } if (s.length() == 10) { return DateTime.parse(s).toDate(); } return DateTime.parse(s, DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")).toDate(); } public static void main(String[] args) throws Exception { System.out.println(parseDate("1988-02-24")); System.out.println(parseDate("1988-02-24 11:00:00")); System.out.println(formatTimestamp(new Date())); }