介绍
介绍
今天福哥带着大家来给我们的TFSpring框架增加针对日期和时间的处理功能。在Java语言里面日期和时间的相关对象包括Calendar、Date、Timestamp几个对象,在不同的场合下会将某一个时间对象转换成需要的类型。所以说,我们要创建一个日期和时间的操作对象,它可以满足将这三个时间对象来回转换的功能。
另外,我们要根据系统当前时间获取一个时间对象,有了这个功能之后,我们就可以将这个系统时间转换成任意类型的时间对象了。
再有,除了获取系统当前时间外,我们还需要根据一个时间对象进行偏移处理,可以计算出过去的一个时间或者未来的一个时间。例如:昨天、上周、上半年、明天、下个月、明年的今天等等。
TFDatetime
路径
TFSpring.datetime.TFDatetime
代码
date
public static Calendar date(){ return Calendar.getInstance(); }
dateAdd
public static Calendar dateAdd(Calendar calendar, int field, int amount){ calendar.add(field, amount); return calendar; }
toDate
// any -> Date // Calendar -> Date public static Date toDate(Calendar calendar){ return calendar.getTime(); } // Timestamp -> Date public static Date toDate(Timestamp timestamp){ return (Date) timestamp; } // String -> Date public static Date toDate(String datetime, String format){ try{ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); return simpleDateFormat.parse(datetime); } catch (Exception e){ } return null; }
toTimestamp
// any -> Timestamp // Calendar -> Timestamp public static Timestamp toTimestamp(Calendar calendar){ return new Timestamp(calendar.getTimeInMillis()); } // Date -> Timestamp public static Timestamp toTimestamp(Date date){ return new Timestamp(date.getTime()); } // String -> Timestamp public static Timestamp toTimestamp(String datetime){ try{ return Timestamp.valueOf(datetime); } catch (Exception e){ } return null; }
toCalendar
// any -> Calendar // Date -> Calendar public static Calendar toCalendar(Date date){ Calendar calendar; calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; } // Timestamp -> Calendar public static Calendar toCalendar(Timestamp timestamp){ Calendar calendar; calendar = Calendar.getInstance(); calendar.setTime(timestamp); return calendar; } // String -> Calendar public static Calendar toCalendar(String datetime){ return TFDatetime.toCalendar(TFDatetime.toTimestamp(datetime)); }
toString
// any -> String // Calendar -> String public static String toString(Calendar calendar, String format){ return TFDatetime.toString(calendar.getTime(), format); } public static String toString(Calendar calendar){ return TFDatetime.toString(calendar, "yyyy-MM-dd HH:mm:ss"); } // Date -> String public static String toString(Date date, String format){ SimpleDateFormat simpleDateFormat; String sDate; simpleDateFormat = new SimpleDateFormat(format); sDate = simpleDateFormat.format(date); return sDate; } public static String toString(Date date){ return TFDatetime.toString(date, "yyyy-MM-dd HH:mm:ss"); } // Timestamp -> String public static String toString(Timestamp timestamp, String format){ return TFDatetime.toString((Date) timestamp, format); } public static String toString(Timestamp timestamp){ return TFDatetime.toString(timestamp, "yyyy-MM-dd HH:mm:ss"); }
讲解
TFDatetime
date
这里是通过Calendar获取系统当前时间
dateAdd
这里是通过对Calendar时间进行偏移的方式得到过去或者未来的某一个时间
toDate
这里是将其他类型转换为Date类型的方法,包括:Calenar、Timestamp、String。
toTimestamp
这里是将其他类型转换为Timestamp类型的方法,包括:Calenar、Date、String。
toCalendar
这里是将其他类型转换为Calendar类型的方法,包括:Date、Timestamp、String。
toString
这里是将其他类型转换为字符串类型的方法,包括:Calendar、Date、Timestamp。
因为转换字符串需要指定时间格式,为了便于使用,福哥提供了默认格式的重载方法,默认的时间格式为“yyyy-MM-dd HH:mm:ss”这种符合咱们习惯的格式。
使用
测试代码
效果
总结
福哥今天带着童鞋们给我们的TFSpring框架添加了第一个模块对象——TFDatetime,它用来操作日期和时间,通过福哥提供的一系列重载方法,我们可以使用TFDatetime对象获取当前时间、过去的时间和未来的时间,还可以根据需要将这些时间转换成我们想要的类型。
下一课,福哥将带着大家给TFSpring框架添加用于文本编码的Encoding模块,敬请期待~~