zoukankan      html  css  js  c++  java
  • Java【常用的日期操作】

    java.util.Calendar 类是一个抽象类 ,Calendar 类进行时间和日期的处理

    首先获取类实例
    Calendar calendar = Calendar.getInstance();//获取当前系统时间

    1.设置时间

    calendar.set(2013, 5, 4, 13, 44, 51);//年月日时分秒(月份0代表1月)
    calendar.set(Calendar.YEAR, 2014);//设置为2014年
    calendar.set(Calendar.MONTH, 7);//设置为8月(0代表1月,1代表2月,2代表3月...12代表1月)
    calendar.set(Calendar.DATE, 11);//设置为11日
    calendar.set(Calendar.HOUR_OF_DAY, 15);//设置为15时
    calendar.set(Calendar.MINUTE, 33);//设置为33分
    calendar.set(Calendar.SECOND, 32);//设置为32秒
    

    2.获取年月日时分秒

    calendar.get(Calendar.YEAR);//年
    calendar.get(Calendar.MONTH) + 1;//前一个月+1(必须要+1,不然表示获取前一个月份)
    calendar.get(Calendar.DATE);//日
    calendar.get(Calendar.HOUR_OF_DAY);//时
    calendar.get(Calendar.MINUTE);//分
    calendar.get(Calendar.SECOND);//秒
    calendar.get(Calendar.DAY_OF_WEEK);//星期(Locale.ENGLISH情况下,周日是1,剩下自己推算)
    

    3.通过运算获取时间

    calendar.add(Calendar.YEAR, 1);//年
    calendar.add(Calendar.MONTH, 1);//月
    calendar.add(Calendar.DATE, 1);//后一天的时间,-1代表前一天的时间
    calendar.add(Calendar.HOUR_OF_DAY, -1);//时
    calendar.add(Calendar.MINUTE, 1);//分
    calendar.add(Calendar.SECOND, 1);//秒
    calendar.add(Calendar.DATE, 7);//周
    

    4.和Date类转换

    Date转Calendar

    //1.首先获取类实例
    Calendar calendar = Calendar.getInstance();
    Date date = new Date();//当前时间
    calendar.setTime(date);//设置为当期时间
    

    Calendar转Date

    Calendar calendar = Calendar.getInstance();
    Date date = calendar.getTime();
    

    5.格式化时间

    Date转String

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //自定义格式:"yyyy年MM月dd日 HH:mm:ss" ,"yyyy-MM-dd HH:mm:ss" 等...
    Date time = calendar.getTime();
    String dateStr = simpleDateFormat.format(time);
    

    String转Date

    String dateStr = "2020-07-21 18:10:12";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date parse = simpleDateFormat.parse(dateStr);
    

    6.新功能LocalDate:当前日期格式化

    /**
     * @description: LocalDate日期处理
     * @author: HaoWu
     * @create: 2020年09月04日
     */
    public class TestPublisher {
        public static void main(String[] args) {
            /***************** LocalDate ********************/
            LocalDate now = LocalDate.now();
            //当前日期  2020-09-05
            String nowStr = now.toString();
            //前一天   2020-09-04
            String yesterday1 = now.plusDays(-1).toString();
            String yesterday2 = now.minusDays(1).toString();
    
            /***************** LocalTime ********************/
            LocalTime nowTime = LocalTime.now();
            //hh:MM:ss 时分秒
            String nowStr1 = nowTime.toString();
            //时
            int hour = nowTime.getHour();
            //分
            int minute = nowTime.getMinute();
            //秒
            int second = nowTime.getSecond();
            /***************** LocalTime ********************/
            //这个不标准:2020-09-05T10:20:37.188
            LocalDateTime.now().toString();
        }
    }
    

    7.示例

    求打印出前七天的日期,格式为:“2020年07月21日 11:22:22”

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     * @description: TODO Calendar类基本使用
     * @author: HaoWu
     * @create: 2020/7/21 17:37
     */
    public class CalendarDemo {
        public static void main(String[] args) throws ParseException {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            for (int i = 1; i < 8; i++) {
                Calendar calendar = Calendar.getInstance();
                calendar.add(Calendar.DATE,-i);
                Date time = calendar.getTime();
                System.out.println(simpleDateFormat.format(time));
            }
        }
    }
    

    打印结果

    2020年07月20日 18:21:44
    2020年07月19日 18:21:44
    2020年07月18日 18:21:44
    2020年07月17日 18:21:44
    2020年07月16日 18:21:44
    2020年07月15日 18:21:44
    2020年07月14日 18:21:44
    
    Process finished with exit code 0
    
  • 相关阅读:
    编程的发展史及Python简介
    计算机的主要部件和组成
    编程二连
    数据库中的数据类型
    数据库概念和基本操作(mysql的操作)
    并发编程之协程
    并发编程之多线程
    网络编程之socket编程
    并发编程之多进程
    网络编程之网络协议
  • 原文地址:https://www.cnblogs.com/wh984763176/p/13356725.html
Copyright © 2011-2022 走看看