Joda-Time 操作常用时间函数

比较时间大小

Joda-Time 操作常用时间函数

Joda-Time 简介(引用) / 例子Example(自己)/ 官网例子

Java日期计算之Joda-Time

JodaTime开源时间/日期库

测试

package test.java.com.kaishengit.service.impl;

import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.*;
import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.SortedSet;


/**
 * Created by Wgs on 2017/10/11.
 */
public class MapTest {
    @Test
    public void test() {
        String authCode = "21234654332243";
        String[] strings = new String[]{"25", "26", "27"};
        if (StringUtils.startsWithAny(authCode, strings) && authCode.length() >= 16) {
            System.out.println("success");
        }
        System.out.println(authCode.length());
    }

    @Test
    public void time() {
        System.out.println(DateTime.now().toString("yyyy-MM-dd"));
        System.out.println(new Date());
        // 获取当前周的周一和周末
        System.out.println(String.format("min:%s, max:%s", DateTime.now().dayOfWeek().withMinimumValue().toString("yyyy-MM-dd"),
                DateTime.now().dayOfWeek().withMaximumValue().toString("yyyy-MM-dd")));
    }

    @Test
    public void week() {
        //DateTime now = new DateTime("2017-03-15");
        DateTime now = DateTime.now();
        String start = now.dayOfWeek().withMinimumValue().toString("yyyy-MM-dd");
        String end = now.dayOfWeek().withMaximumValue().toString("yyyy-MM-dd");
        System.out.println(end);
        System.out.println(start);
//星期
        int week = now.getDayOfWeek();
        System.out.println(week);

        String string_c = now.toString("MM", Locale.CHINESE);
        System.out.println(string_c);
        String moth = now.monthOfYear().getAsText(Locale.CHINESE);
        System.out.println(moth);
    }

    @Test
    public void moth() {
        DateTime now = DateTime.now();
        System.out.println(now.dayOfMonth().withMinimumValue().toString("yyyy-MM-dd"));
        System.out.println(now.dayOfMonth().withMaximumValue().toString("dd"));
    }

    @Test
    public void year() {
        DateTime now = DateTime.now();
        System.out.println(now.monthOfYear().withMinimumValue().toString("yyyy-MM"));
        System.out.println(now.monthOfYear().withMaximumValue().toString("yyyy-MM"));
    }

    @Test
    public void weeks() {
        //DateTime now = new DateTime("2017-03-15");
        DateTime now = DateTime.now();
        String start = now.dayOfWeek().withMinimumValue().toString("yyyy-MM-dd");
        String end = now.dayOfWeek().withMaximumValue().toString("yyyy-MM-dd");
        System.out.println(end);
        System.out.println(start);
//星期
        //   int week = now.getDayOfWeek();
        //  System.out.println(week);

        //  String string_c = now.toString("MM", Locale.CHINESE);
        //  System.out.println(string_c);
        // String moth = now .monthOfYear().getAsText(Locale.CHINESE);
        //  System.out.println(moth);
    }

    @Test
    public void weeknull() {
        String tiem = "11";
        if (StringUtils.isBlank(tiem)) {
            System.out.println("111");
        }

        // if (StringUtils)
        //DateTime now = new DateTime("2017-03-15");
        DateTime now = DateTime.now();
        String start = now.dayOfMonth().withMinimumValue().toString("yyyy-MM-dd");
        String end = now.dayOfMonth().withMaximumValue().toString("yyyy-MM-dd");
        System.out.println(end);
        System.out.println(start);
        System.out.println(now.toString("EE", Locale.CHINESE));

    }

    /**
     * guava List交集
     */
    @Test
    public void eq() {
        // x轴数据是固定的
        List listOld = Lists.newArrayList("周一", "周二", "周三", "周四", "周五", "周六", "周日");
        // 把周二插到指定位置
        List newList = Lists.newArrayList("周一", "周三", "周四", "周五", "周六", "周日");
        List guava = getDifferenceSetByGuava(listOld, newList);
        for (String result : guava) {
            System.out.println(result);
        }

    }

    @Test
    public void eqs() {
        List listOld = Lists.newArrayList("0:00", "3:00", "4:00", "5:00");
        List newList = Lists.newArrayList("6:00", "3:00", "1:00");
        newList.removeAll(listOld);
        listOld.addAll(newList);

        Collections.sort(listOld);
        for (String result : listOld) {
            System.out.println(result);
        }
    }

    @Test
    public void b() {
        List list1 = new ArrayList();
        list1.add("1111");
        list1.add("2222");
        list1.add("3333");

        List list2 = new ArrayList();
        list2.add("3333");
        list2.add("4444");
        list2.add("5555");

        //并集
        //list1.addAll(list2);
        //交集
        //list1.retainAll(list2);
        //差集
        list1.removeAll(list2);
        //无重复并集
        list2.removeAll(list1);
        list1.addAll(list2);

        Iterator it = list1.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());

        }

        //System.out.println("-----------------------------------\n");
        //printStr(list1);

    }

    public static void printStr(List list1) {
        for (int i = 0; i < list1.size(); i++) {
            System.out.println(list1.get(i));
        }

    }

    @Test
    public void c() {
        Multiset multiSet = HashMultiset.create();
        multiSet.add("chen");
        multiSet.add("chen");
        multiSet.add("xing");
        for (String s : multiSet) {
            System.out.println(s);
        }

        Multimap multiMap = HashMultimap.create();
        multiMap.put("chen", "11");
        multiMap.put("chen", "22");
        for (Map.Entry entry : multiMap.entries()) {
            System.out.println("key:" + entry.getKey() + "  value:" + entry.getValue());
        }
    }

    @Test
    public void guavat() {
        ImmutableMap oneMap = ImmutableMap.of("key1", 1, "key2", 2);
        ImmutableMap twoMap = ImmutableMap.of("key11", 11, "key2", 2);
        MapDifference diffHadle = Maps.difference(oneMap, twoMap);
        Map commonMap = diffHadle.entriesInCommon();//{"key2",2},若无共同Entry,则返回长度为0的Map
        Map diffOnLeft = diffHadle.entriesOnlyOnLeft();//返回左边的Map中不同或者特有的元素
        Map diffOnRight = diffHadle.entriesOnlyOnRight();//返回右边的Map中不同或者特有的元素
        for (Map.Entry entry : diffOnRight.entrySet()) {
            System.out.println("共同Map中key:" + entry.getKey() + "  value:" + entry.getValue());
        }
    }

    @Test
    public void gavaTe() {
        List big = Lists.newArrayList("1", "2", "3", "4", "5", "6", "7", "8", "9");
        List small = Lists.newArrayList("1", "2", "3", "3", "2", "1");
        long a = System.currentTimeMillis();
        List guava = getDifferenceSetByGuava(big, small);
        System.out.println("\r
执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 "); //为了显示一致,我给集合排个序,因为guava是按newHashSet集合来整的,newHashSet又是无序的,so ... Collections.sort(guava); a = System.currentTimeMillis(); List my = getDifferenceSetByMyself(big, small); System.out.println("\r
执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 "); System.out.println("guava:" + guava.toString()); System.out.println(my.toString()); Map bigMap = Maps.newHashMap(); bigMap.put("1", "1"); bigMap.put("2", "2"); bigMap.put("3", "3"); bigMap.put("4", "4"); Map smallMap = Maps.newHashMap(); smallMap.put("1", "1"); smallMap.put("2", "9"); smallMap.put("5", "5"); a = System.currentTimeMillis(); Map guavaMap = getDifferenceSetByGuava(bigMap, smallMap); System.out.println("\r
执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 "); System.out.println(guavaMap); } /** * 使用guava工具类来取List集合的差集--专业轮子谷歌造 * * @param big 大集合 * @param small 小集合 * @return 两个集合的差集 */ private static List getDifferenceSetByGuava(List big, List small) { Set differenceSet = Sets.difference(Sets.newHashSet(big), Sets.newHashSet(small)); return Lists.newArrayList(differenceSet); } /** * 自己实现取List集合的差集--自制轮子大师兄造 * * @param big 大集合 * @param small 小集合 * @return 两个集合的差集 */ private static List getDifferenceSetByMyself(List big, List small) { Set sameString = Sets.newHashSet(); for (String s : small) { sameString.add(s); } List result = Lists.newArrayList(); for (String s : big) { if (sameString.add(s)) { result.add(s); } } return result; } /** * 自己实现取Map集合的差集--站在巨人的肩膀上造轮子 * * @param bigMap 大集合 * @param smallMap 小集合 * @return 两个集合的差集 */ private static Map getDifferenceSetByGuava(Map bigMap, Map smallMap) { Set bigMapKey = bigMap.keySet(); Set smallMapKey = smallMap.keySet(); Set differenceSet = Sets.difference(bigMapKey, smallMapKey); Map result = Maps.newHashMap(); for (String key : differenceSet) { result.put(key, bigMap.get(key)); } return result; } @Test public void testMap() { List persons = Lists.newArrayList( new Person("zhang", 15), new Person("wang", 15), new Person("lee", 18) ); Map map = Maps.uniqueIndex(persons, new Function() { public String apply(Person person) { return person.getName(); } }); map = Maps.filterValues(map, new Predicate() { @Override public boolean apply(Person person) { return person != null && person.getAge() > 15; } }); for (Map.Entry entry : map.entrySet()) { System.out.println(entry.getKey() + " " + entry.getValue()); } } @Test public void convent() { Map map1 = Maps.newHashMap(); map1.put("a", 1); map1.put("b", 2); map1.put("c", 3); map1.put("d", 4); Map map2 = Maps.newHashMap(); map2.put("a", 1); map2.put("b", 2); Map result = Maps.filterKeys(map2, new Predicate() { @Override public boolean apply(String s) { return s.equals("a"); } }); for (String st : result.keySet()) { System.out.println("key:" + st + "value:" + result.get(st)); } } @Test public void tests(){ List list = new ArrayList(); Map map = new HashMap(); } }

你可能感兴趣的:(Joda-Time 操作常用时间函数)