Java日期操作

SimpleDateFormat

    public static void main(String[] args) {
        /*Date d1 = new Date();
        System.out.println(d1);
        //t1等同于t2      建议使用System.currentTimeMillis
        long t1 = d1.getTime();
        long t2 = System.currentTimeMillis();
        System.out.println(t1);
        System.out.println(t2);
        */

        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //String  -->  Data
        try {
            Date parse = df.parse("2020-6-6 06:20:59");
            System.out.println(parse);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //Data  -->    String
        String ss = df.format(new Date());
        System.out.println(ss);

    }

Calendar类

public static void main(String[] args) {
        //GregorianCalendar extends Calendar  父类是一个抽象类
        //两种方法创建Calendar类
        Calendar cal = new GregorianCalendar();
        Calendar cal2 = Calendar.getInstance();
        //常用属性
        System.out.println(cal.get(Calendar.YEAR));     //年
        System.out.println(cal.get(Calendar.MONTH));    //月
        System.out.println(cal.get(Calendar.DATE));     //日
        System.out.println(cal.get(Calendar.DAY_OF_WEEK));     //星期中的第几天
        System.out.println(cal.getActualMaximum(Calendar.DATE));     //获取当月最大天数
        System.out.println(cal.getActualMinimum(Calendar.DATE));     //获取当月最小天数

        //set方法
        cal.set(Calendar.YEAR,1990);
        cal.set(Calendar.MONTH,6);
        cal.set(Calendar.DATE,10);
        System.out.println(cal);

        /* String ==> Calendar
         * 分解:
         * String ==> java.sql.Date
         * */
        java.sql.Date sqldate = java.sql.Date.valueOf("2020-9-20");
        cal.setTime(sqldate);
        System.out.println(cal);
    }

日历打印


/**
 * @Auther: ABU
 * @Date: 2021/6/9 - 06 - 09 - 21:58
 * @Description: Test03_包装类_日期_String
 * 请输入要查看的日期 (格式 2021-6-9) :
 * 2021-6-5
 * 日    一   二   三   四   五   六
 *          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
 */
public class Test05_Data02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要查看的日期 (格式 2021-6-9) :");
        //获取键盘录入的信息
        String nowDate = sc.next();

        java.sql.Date date = java.sql.Date.valueOf(nowDate);
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        //获取当月最大天数
        int maxDay = cal.getActualMaximum(Calendar.DATE);
        //获取当前日
        int nowDay = cal.get(Calendar.DATE);
        //获取当月1号是星期几
        cal.set(Calendar.DATE,1);   //设置为1号
        int num = cal.get(Calendar.DAY_OF_WEEK);
        //前面空出来的天数
        int day = num -1;
        //星期提示
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        int count = 0;
        for (int i = 1; i <= day; i++) {
            System.out.print("\t");
        }
        count += day;
        for (int i = 1; i <= maxDay; i++) {
            String d1 = i == nowDay ? i+"*\t" : i+"\t";
            System.out.print(d1);
            count++;
            if(count % 7 == 0){
                System.out.println();
            }
        }
    }
}

JDK 1.8新特性

LocalDateTime

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * @Auther: ABU
 * @Date: 2021/6/10 - 06 - 10 - 8:09
 * @Description:  
 *
 * JDK 1.8新特性     
 * LocalDateTime
 *
 * @version: 1.0
 */
public class Test06_Data03_LocalDateTime {
    public static void main(String[] args) {
        //方法1:now()    获取时间,获取日期,获取时间+日期
        LocalTime lo = LocalTime.now();
        System.out.println(lo);
        LocalDate lo2 = LocalDate.now();
        System.out.println(lo2);
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        //方法1:of()   设置时间,日期,时间+日期
        //设置时间 时-分-秒
        LocalTime lo4 = LocalTime.of(8,1,6);
        //年-月-日
        LocalDate lo5 = LocalDate.of(2020,1,6);
        //年-月-日   时-分-秒
        LocalDateTime lo6 = LocalDateTime.of(2020,6,8,20,30,20);
        System.out.println(lo6);

        //get方法获取  年-月-日   时-分-秒  以LocalDateTime对象为例
        System.out.println(localDateTime.getYear());  //2021
        System.out.println(localDateTime.getMonth());  // JUNE
        System.out.println(localDateTime.getMonthValue());  //6
        System.out.println(localDateTime.getDayOfMonth());  //10
        System.out.println(localDateTime.getDayOfWeek());   //THURSDAY
        System.out.println(localDateTime.getHour());        //8
        System.out.println(localDateTime.getMinute());      //56
        System.out.println(localDateTime.getSecond());      //17

        //不是set方法    with设置LocalDateTime时间 不可变
        LocalDateTime localDateTime2 = localDateTime.withYear(2019);
        LocalDateTime localDateTime3 = localDateTime2.withMonth(6);
        //返回的是一个新对象,不是修改原有的localDateTime
        System.out.println(localDateTime);
        System.out.println(localDateTime2);

        //加操作
        LocalDateTime localDateTime4 = localDateTime.plusYears(2);
        System.out.println(localDateTime4);
        //减操作
        LocalDateTime localDateTime5 = localDateTime.minusYears(2);
        System.out.println(localDateTime5);

    }
}

DateTimeFormatter


import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.TemporalAccessor;

/**
 * @Auther: ABU
 * @Date: 2021/6/10 - 06 - 10 - 9:22
 * @Description: 
 *
 * JDK 1.8 新特性
 * DateTimeFormatter
 *
 * @version: 1.0
 */
public class Test07_Data04_DateTimeFormatter {
    public static void main(String[] args) {

        //方法1:df1可以帮助我们完成LocalDateTime和String转换
        // LocalDateTime  ==>  String
        DateTimeFormatter df1 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
        LocalDateTime lo1 = LocalDateTime.now();
        String da = df1.format(lo1);
        System.out.println(da);
        //方法:parse    String  ==>  LocalDateTime
        TemporalAccessor p1 = df1.parse("2021-06-10T09:30:02.1209724");
        System.out.println(p1);

        //方法二:本地化方法  如: ofLocalizedDateTime
        /*参数:FormatStyle.LONG         2021年6月10日 上午09时43分18秒
             FormatStyle.MEDIUM       2021-6-10 9:43:35
             FormatStyle.SHORT        21-6-10 上午9:44  */
        DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);

        // LocalDateTime  ==>  String
        LocalDateTime lt = LocalDateTime.now();
        String str2 = dtf.format(lt);
        System.out.println(str2);

        //  String  ==>  LocalDateTime  格式要和dtf类型一样
        TemporalAccessor parse1 = dtf.parse("2021年6月10日 上午09时43分18秒");
        System.out.println(parse1);

        //自定义格式
        DateTimeFormatter df3 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");

        // LocalDateTime  ==>  String
        LocalDateTime now2 = LocalDateTime.now();
        String str3 = df3.format(now2);
        System.out.println(str3);

        //  String  ==>  LocalDateTime  格式要和类型一样
        TemporalAccessor str4 = df3.parse("2021-06-01 10:22:19");
        System.out.println(str4);

    }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇