开源Java时间工具类Joda-Time体验

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()));

        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]);
        }
    }

    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);
    }
}

输出结果:

当前日期时间: 2017-11-09 16:01:36
当前日期但时间清0: 2017-11-09 00:00:00
本月第一个周日的日期时间: 2017-11-05 16:01:36
本周周一的日期时间: 2017-11-06 16:01:36
距离元旦天数: 53
距离元旦月数: 1
今年每月第一天是周几: 
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 日语:金曜日 韩语:
时间: 2024-10-16 23:38:25

开源Java时间工具类Joda-Time体验的相关文章

Java日期工具类,Java时间工具类,Java时间格式化

Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright  蕃薯耀 2017年2月4日 15:03:27 星期六 http://www.cnblogs.co

超详细的Java时间工具类

package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Gregori

Java 时间工具类

1 package com.xm.utils; 2 3 import java.text.DateFormat; 4 import java.text.SimpleDateFormat; 5 import java.util.Calendar; 6 import java.util.Date; 7 import java.util.GregorianCalendar; 8 import java.util.Locale; 9 import java.util.TimeZone; 10 11 /*

java时间工具类(项目实用)

package com.eabax.plugin.yundada.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.LinkedHashM

Java时间工具类

1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 import java.util.Date; 5 6 import org.apache.commons.lang.StringUtils; 7 8 /** 9 * 函数功能 10 * 1.日期相加减天数 11 * 2.时间格式化成字符串 12 * 3.字符串解析成时间对象 13 * 4.将日

JAVA时间工具类用法

1.获得N天前的TIMESTAMP 1 Calendar cl = Calendar.getInstance(); 2 cl.add(Calendar.DAY_OF_YEAR, -7); 3 Date date = cl.getTime(); 4 long time = date.getTime(); 5 Timestamp timestamp = new Timestamp(time); 2.程序启动当前时间和任务执行既定时间 1 /* 2 delegate time 3 */ 4 Strin

Android开源项目大全 - 工具类

主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少View.服务.资源简化初始化,事件绑定等重复繁琐工作 AndroidAnnotations(Code Diet)android快速开发框架 项目地址:https://github.com/excilys/androidannotations 文档介绍:https://github.com/excilys

java 时间戳工具类(最好最全)

package com.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; import android.text.format.DateFormat; public clas

Java并发工具类CyclicBarrier

CyclicBarrier同步屏障 java并发工具类中有一个叫做CyclicBarrier的类,与CountDownLatch类似,都可以实现线程间的同步,但是差别是CyclicBarrier是可重置的同步屏障. 想象一个场景,有N个人不同时间走到一扇门,因为门需要N个人合力才能推开,所以人不足N个时,只能阻塞在此,等到N个人都到了之后,可以推开门,继续进行之前的工作.CyclicBarrier就是这扇门. 看看下面的代码,定义了一个线程数为2的,CyclicBarrier,并在主线程和另外一