JAVA---日期小练习

方法:

  • demo1,demo2日期转换

  • demo3打印日历

  • demo4可以自定义获取6个随机数字或字母(0~9,a~z,A~Z混合一起)

  • demo5自定义字符串获取6个随机组成的字符串

  • demo6求两个日期间隔

  • demo7给某个日期加天数

 

package exercises;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;

public class Exercise {


  public static void main(String[] args) {


      //String时间 与 日期对象相互转换

      // String dateStr = "2020-01-01 12:00:00";
//       System.out.println(demo1(dateStr));//Wed Jan 01 12:00:00 CST 2020

//       Date date = new Date();//当前计算机时间
//       System.out.println(demo2(date));

      // String 转 LocalDateTime

      // System.out.println(LocalDateTime.parse(dateStr, FORMATTER));//2020-01-01T12:00

//       LocalDateTime localDateTime = LocalDateTime.now();
//       System.out.println(localDateTime.format(FORMATTER));

      //demo7(new Date(), 5);
      demo3();

  }

  private static void demo7(Date date, int day) {

//       long time = date.getTime();
//       System.out.println(new Date(time + day * 24 * 3600 * 1000));

      //Calendar
      //date转Calendar

    /* Calendar calendar = Calendar.getInstance();
      calendar.setTime(date);
      calendar.add(Calendar.DATE,day);

      Date time = calendar.getTime();
      System.out.println(time);*/


      //LocalDate
//       System.out.println(LocalDate.of(2019, Month.OCTOBER, 10).plus(Period.ofDays(day)));
      System.out.println(LocalDate.of(2019, Month.OCTOBER, 10).plusDays(day));
  }

  private static void demo6() {
      LocalDateTime localDateTime1 = LocalDateTime.now();
      LocalDateTime localDateTime2 = LocalDateTime.of(2021, Month.MAY, 24, 12, 30, 30);
      //间隔 小时
      System.out.println(Math.abs(localDateTime1.until(localDateTime2, ChronoUnit.HOURS)));


  }

  private static void demo5() {

      String str = "小黑子鸡你太美!+daw234";

      Random random = new Random();
      StringBuilder builder = new StringBuilder();
      int length = str.length();
      for (int i = 0; i < 6; i++) {
          builder.append(str.charAt(random.nextInt(length)));
      }
      System.out.println(builder);

  }

  private static void demo4() {

      //可以自定义获取6个随机数字或字母(0~9,a~z,A~Z混合一起)
      // Random random = new Random();

      ThreadLocalRandom random = ThreadLocalRandom.current();

      StringBuilder builder = new StringBuilder();
      for (int i = 0; i < 6; i++) {
          int num = random.nextInt(48, 123);// 48-57 97-122 65-90
          if (num >= 48 && num <= 57) {//0-9
              builder.append(num - 48);
          } else if ((num >= 65 && num <= 90) || (num >= 97 && num <= 122)) {//A-Z a-z
              builder.append((char) num);
          } else {
              i--;
          }
      }
      System.out.println(builder.toString());
  }

  private static void demo3() {
      //使用Calendar类的相关属性以及方法
      //1.获得Calendar类对象
      Calendar calendar = Calendar.getInstance();//获得当前系统默认时间

      //calendar.set(Calendar.MONTH, Calendar.FEBRUARY);


      calendar.set(Calendar.DAY_OF_MONTH, 1);

      int totalDays = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

      System.out.println("日\t1\t2\t3\t4\t5\t6");
      //当前月1号 属于这一周的第几天
      int num = calendar.get(Calendar.DAY_OF_WEEK);

      for (int i = 1; i < num; i++) {
          System.out.print("\t");
      }

      for (int i = 1; i <= totalDays; i++) {
          System.out.print(i + "\t");
          calendar.set(Calendar.DAY_OF_MONTH, i);
          int day = calendar.get(Calendar.DAY_OF_WEEK);
          if (day %7==0) {
              System.out.println();
          }
      }
  }


  private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

  // private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  //ThreadLocal

  private static final ThreadLocal<DateFormat> LOCAL = new ThreadLocal() {
      @Override
      protected SimpleDateFormat initialValue() {
          return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      }
  };

  private static String demo2(Date date) {
      return LOCAL.get().format(date);
  }

  private static Date demo1(String dateStr) {

      DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      //SimpleDateFormat dateFormat = new SimpleDateFormat();
      try {
          Date date = LOCAL.get().parse(dateStr);
          return date;
      } catch (ParseException e) {
          e.printStackTrace();
      }

      return null;
  }

}
posted @ 2022-10-22 12:23  学JAVA的旅行者  阅读(159)  评论(0)    收藏  举报