同福

做个java框架(3)——日期和时间的使用【20210101】

介绍

介绍

今天福哥带着大家来给我们的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”这种符合咱们习惯的格式。

使用

测试代码

2f13e8d1b6836ffd.jpg

效果

409529c218c08cfe.jpg

总结

福哥今天带着童鞋们给我们的TFSpring框架添加了第一个模块对象——TFDatetime,它用来操作日期和时间,通过福哥提供的一系列重载方法,我们可以使用TFDatetime对象获取当前时间、过去的时间和未来的时间,还可以根据需要将这些时间转换成我们想要的类型。

下一课,福哥将带着大家给TFSpring框架添加用于文本编码的Encoding模块,敬请期待~~