怎么才能愉快地处理日期和时间?答案是:立刻升级到Java 8! Java 8新增了LocalDate和LocalTime接口,为什么要搞一套全新的处理日期和时间的API?因为旧的javautilDate实在是太难用了。 javautilDate月份从0开始,一月是0,十二月是11
解决方法如下:
1、修改phpini配置文件
打开phpini文件,一般在php配置根目录下,找到其中的 ;datetimezone,删掉前面的分号,并改为date timezone = PRC。保存,重启Apahce服务即可(有时用restart会有问题,先stop然后start就行了)。
2、加上date_default_timezone_set(timezone_identifier)函数
这个函数的意思是,设置当前时区,对时间进行初始化,在页头或获取时间语句前加上这句话。
LocalDate
看看新的LocalDate怎么用:
// 取当前日期:
LocalDate today = LocalDatenow(); // -> 2014-12-24
// 根据年月日取日期,12月就是12:
LocalDate crischristmas = LocalDateof(2014, 12, 25); // -> 2014-12-25
// 根据字符串取:
LocalDate endOfFeb = LocalDateparse("2014-02-28"); // 严格按照ISO yyyy-MM-dd验证,02写成2都不行,当然也有一个重载方法允许自己定义格式
LocalDateparse("2014-02-29"); // 无效日期无法通过:DateTimeParseException: Invalid date
日期转换经常遇到,比如:
// 取本月第1天:
LocalDate firstDayOfThisMonth = todaywith(TemporalAdjustersfirstDayOfMonth()); // 2014-12-01
// 取本月第2天:
LocalDate secondDayOfThisMonth = todaywithDayOfMonth(2); // 2014-12-02
// 取本月最后一天,再也不用计算是28,29,30还是31:
LocalDate lastDayOfThisMonth = todaywith(TemporalAdjusterslastDayOfMonth()); // 2014-12-31
// 取下一天:
LocalDate firstDayOf2015 = lastDayOfThisMonthplusDays(1); // 变成了2015-01-01
// 取2015年1月第一个周一,这个计算用Calendar要死掉很多脑细胞:
LocalDate firstMondayOf2015 = LocalDateparse("2015-01-01")with(TemporalAdjustersfirstInMonth(DayOfWeekMONDAY));
// 2015-01-05
LocalTime
LocalTime只包含时间,以前用javautilDate怎么才能只表示时间呢?答案是,假装忽略日期。
LocalTime包含毫秒:
LocalTime now = LocalTimenow(); // 11:09:09240
你可能想清除毫秒数:
LocalTime now = LocalTimenow()withNano(0)); // 11:09:09
构造时间也很简单:
LocalTime zero = LocalTimeof(0, 0, 0); // 00:00:00
LocalTime mid = LocalTimeparse("12:00:00"); // 12:00:00
import javatimeLocalDate;
public class DemoTime {
public static void main(String[] args) {
LocalDate date = LocalDateof(2015, 11, 12);
int now = dategetDayOfWeek()getValue();
Systemoutprintln("今天是\t星期"+now);
for (int i = 1; i < 8; i++) {
Systemoutprintln("下个星期"+i+"\t"+dateplusDays(7-now+i));;
}
}
}
输出
今天是 星期4下个星期1 2015-11-16
下个星期2 2015-11-17
下个星期3 2015-11-18
下个星期4 2015-11-19
下个星期5 2015-11-20
下个星期6 2015-11-21
下个星期7 2015-11-22
/
获取上周五时间
/
public Date lastFirday() {
//作用防止周日得到本周日期
Calendar calendar = CalendargetInstance();
while (calendarget(CalendarDAY_OF_WEEK) != CalendarMONDAY) {
calendaradd(CalendarDAY_OF_WEEK, -1);
}
int dayOfWeek = calendarget(CalendarDAY_OF_WEEK) - 1;
int offset = 7 - dayOfWeek;
calendaradd(CalendarDATE, offset - 9);
return DateTimeUtilgetFirstDayOfWeek(calendargetTime(), 6);//这是从上周日开始数的到本周五为6
}
/
获取上周一时间
/
public Date lastMonday() {
Calendar calendar = CalendargetInstance();
while (calendarget(CalendarDAY_OF_WEEK) != CalendarMONDAY) {
calendaradd(CalendarDAY_OF_WEEK, -1);
}
int dayOfWeek = calendarget(CalendarDAY_OF_WEEK) - 1;
int offset = 1 - dayOfWeek;
calendaradd(CalendarDATE, offset - 7);
return DateTimeUtilgetFirstDayOfWeek(calendargetTime(), 2);
}
以上就是关于如何在java8中愉快地处理日期和时间java8新增了localdate和localtim全部的内容,包括:如何在java8中愉快地处理日期和时间java8新增了localdate和localtim、PHP函数Localdate()取出的月份是错误的。、如何在Java 8中愉快地处理日期和时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)