Date练习题

练习题

package com.sq.systemTest;

import org.junit.Test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.Comparator;

// ctrl + n 快速查找类
public class DateTest {
    /*
        题目:将字符串"2017-08-16"转换为对应的java.sql.Date类的对象。
             (使用 JDK8 之前或 JDK8 中得 API 皆可)
     */
    @Test
    public void text1(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
//            Date parse = sdf.parse("2017-08-16");
            java.util.Date parse = sdf.parse("2017-08-16");
            java.sql.Date date = new java.sql.Date(parse.getTime());
//            java.sql.Date date1 = new java.sql.Date(0);
//            System.out.println(parse.getTime());// 1970/1/1 午夜距离该日期时间的毫秒数
            System.out.println(date);
//            System.out.println(date1);// 1970-01-01
        } catch (ParseException e) {
            e.printStackTrace();
        }

    }

    @Test
    public void test2(){
//        java.sql.Date.valueOf(String s) 的 s 格式必须为yyyy-MM-dd 格式
        String s = "2017-08-16";
        java.sql.Date d = java.sql.Date.valueOf(s);
        System.out.println(d);//2017-08-16
    }

    // 非完整代码
    @Test
    public void test3(){
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        // 未完成

    }

}
/*
    解释何为编码?解码?何为日期时间的格式化?解析?

        编码:字符串 —> 字节
        解码:字节 —> 字符串

        格式化: 日期 -> 字符串
        解析: 字符串 —> 日期
 */

/*
    自定义 Person 类如下,如何实现自然排序(按姓名从小到大排序).
 */
class Person implements Comparable {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public int compareTo(Object o) {
        if( o instanceof Person){
            // 从小到大
            return this.name.compareTo(((Person)o).name);
            // 从大到小
//            return -this.name.compareTo(((Person)o).name);
        }
        throw new RuntimeException("传入的数据类型不一致!");
    }
    /*
        提供定制排序涉及到的接口的实现类对象,并按 Person 类的年龄从大到小排序
     */
    // Comparable接口的方式一旦一定,保证 Comparable接口实现类得对象在任何位置都可以比较大小。
    // Comparator接口属于临时型的比较
    Comparator comparator = new Comparator() {

        //按照年龄从大到小的顺序排列
        @Override
        public int compare(Object o1, Object o2) {
            if (o1 instanceof Person && o2 instanceof Person) {
                Person p1 = (Person) o1;
                Person p2 = (Person) o2;
                return -(p1.getAge() - p2.getAge());
            }
            throw new RuntimeException("输入的数据类型不一致");
        }
    };
}
/*
    JDK8 之前日期时间                    JDK8 中日期时间
    java.util.Date和java.sql.Date      -> Instant
    SimpleDateFormat                   -> DateTimeFormatter
    Calendar                           -> LocalDate、LocalTime、LocalDateTime
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值