本文共 3813 字,大约阅读时间需要 12 分钟。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import org.joda.time.*; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import org.junit.Test; import java.util.Locale; /** * @author by lei zhou on 2017/11/09 14:20. */ public class JodaTimeTest { @Test public void test() { // 日期输出格式 DateTimeFormatter dateTimeFormat = DateTimeFormat.forPattern( "yyyy-MM-dd HH:mm:ss" ); System.out.println( "当前日期时间: " + DateTime.now().toString(dateTimeFormat)); System.out.println( "当前日期但时间清0: " + DateTime.now().withTimeAtStartOfDay().toString(dateTimeFormat)); System.out.println( "本月第一个周日的日期时间: " + getThisMonthFirstSunday().toString(dateTimeFormat)); System.out.println( "本周周一的日期时间: " + getThisWeekSunday().toString(dateTimeFormat)); System.out.println( "距离元旦天数: " + daysToNewYear(DateTime.now())); System.out.println( "距离元旦月数: " + monthsToNewYear(DateTime.now())); System.out.println( "当前月份最后一天日期: " + DateTime.now().withDayOfMonth( 1 ) .monthOfYear().addToCopy( 1 ) .dayOfMonth().addToCopy(- 1 ) .withTimeAtStartOfDay() .toString(dateTimeFormat)); String[] french = DateTimeUtils.getDateFormatSymbols(Locale.FRANCE).getWeekdays(); String[] japanese = DateTimeUtils.getDateFormatSymbols(Locale.JAPAN).getWeekdays(); String[] korean = DateTimeUtils.getDateFormatSymbols(Locale.KOREA).getWeekdays(); System.out.println( "今年每月第一天是周几: " ); for ( int month = 1 ; month <= 12 ; month++) { DateTime monthDateTime = DateTime.now().withTimeAtStartOfDay().withMonthOfYear(month).withDayOfMonth( 1 ); int index = monthDateTime.dayOfWeek().get() % 7 + 1 ; System.out.println(monthDateTime.toString(DateTimeFormat.fullDateTime()) + " 法语:" + french[index] + " 日语:" + japanese[index] + " 韩语:" + korean[index]); } DateTime birthday = DateTime.parse( "1981-10-30 8:00:00" , dateTimeFormat); System.out.println( "距离出生已过去多少年: " + Years.yearsBetween(birthday, DateTime.now()).getYears()); System.out.println( "距离出生已过去多少天: " + Days.daysBetween(birthday, DateTime.now()).getDays()); System.out.println( "距离出生已过去多少分钟: " + Minutes.minutesBetween(birthday, DateTime.now()).getMinutes()); } private int monthsToNewYear(DateTime fromDate) { DateTime newYear = fromDate.plusYears( 1 ).withDayOfYear( 1 ); return Months.monthsBetween(fromDate, newYear).getMonths(); } private int daysToNewYear(DateTime fromDate) { DateTime newYear = fromDate.plusYears( 1 ).withDayOfYear( 1 ); return Days.daysBetween(fromDate, newYear).getDays(); } private DateTime getThisMonthFirstSunday() { return DateTime.now().withDayOfMonth( 1 ).withDayOfWeek(DateTimeConstants.SUNDAY); } private DateTime getThisWeekSunday() { return DateTime.now().withDayOfWeek(DateTimeConstants.MONDAY); } } |
输出结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 当前日期时间: 2017-11-09 16:47:37 当前日期但时间清0: 2017-11-09 00:00:00 本月第一个周日的日期时间: 2017-11-05 16:47:37 本周周一的日期时间: 2017-11-06 16:47:37 距离元旦天数: 53 距离元旦月数: 1 当前月份最后一天日期: 2017-11-30 00:00:00 今年每月第一天是周几: 2017年1月1日 星期日 上午12时00分00秒 CST 法语:dimanche 日语:日曜日 韩语: 2017年2月1日 星期三 上午12时00分00秒 CST 法语:mercredi 日语:水曜日 韩语: 2017年3月1日 星期三 上午12时00分00秒 CST 法语:mercredi 日语:水曜日 韩语: 2017年4月1日 星期六 上午12时00分00秒 CST 法语:samedi 日语:土曜日 韩语: 2017年5月1日 星期一 上午12时00分00秒 CST 法语:lundi 日语:月曜日 韩语: 2017年6月1日 星期四 上午12时00分00秒 CST 法语:jeudi 日语:木曜日 韩语: 2017年7月1日 星期六 上午12时00分00秒 CST 法语:samedi 日语:土曜日 韩语: 2017年8月1日 星期二 上午12时00分00秒 CST 法语:mardi 日语:火曜日 韩语: 2017年9月1日 星期五 上午12时00分00秒 CST 法语:vendredi 日语:金曜日 韩语: 2017年10月1日 星期日 上午12时00分00秒 CST 法语:dimanche 日语:日曜日 韩语: 2017年11月1日 星期三 上午12时00分00秒 CST 法语:mercredi 日语:水曜日 韩语: 2017年12月1日 星期五 上午12时00分00秒 CST 法语:vendredi 日语:金曜日 韩语: 距离出生已过去多少年: 36 距离出生已过去多少天: 13159 距离出生已过去多少分钟: 18949487 |
转载地址:http://donbo.baihongyu.com/