51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【Java 基础】Date 类练习

控制台打印当前时间 {#控制台打印当前时间}

import java.text.SimpleDateFormat;
import java.util.Date;

/**

`
`
* Software:IntelliJ IDEA 2018.2.4 x64


* Author: MoBai·杰


* Date: 2020/5/5 10:30


* ClassName:DateDemoTest03



* `类描述:打印当前时间 ("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒")
  */``
  `public` `class` `DateDemoTest03` `{`
  `public` `static` `void` `main(String[]` args`)` `{`
  `// 创建当前时间对象 `
  `Date` nowTime `=` `new` `Date();`
  `// 创建 SimpleDateFormat 对象指定格式 `
  `SimpleDateFormat` sim `=` `new` `SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒");`
  `// 转换成指定格式 `
  `String` string `=` sim`.format(`nowTime`);`
  `System.`out`.println("当前时间是:"` `+` string`);`
  `}`
  `}

判断控制台是否输入为时间格式 {#判断控制台是否输入为时间格式}

/**
 * Software:IntelliJ IDEA 2018.2.4 x64
 * Author: MoBai·杰
 * Date: 2020/5/5 9:33
 * ClassName:DateDemo1
 * 类描述: 判断控制台输入是否为时间格式
 */
public class DateDemoTest {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入出生日期 (yyyy-MM-dd) :");
		String time = scanner.next();
		String string = "time";
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		try {
			Date date = format.parse(time);
			System.out.println("格式正确");
		} catch (Exception e) {
			System.out.println("格式错误");
		}
	}
}

控制台输入指定格式的日期, 输出当月的日历 {#控制台输入指定格式的日期 - 输出当月的日历}

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

/**

`
`
* 
  Software:IntelliJ IDEA 2018.2.4 x64





* 
  Author: MoBai·杰





* 
  Date: 2020/5/5 10:03





* 
  ClassName:DateCalendarDemo






* `
  `类描述:
  */
  public class DateCalendarDemo {
  public static void main(String[] args) throws ParseException {
  Scanner sc = new Scanner(System.in);
  System.out.println("请按照 2020-05-05 的形式输入日期:");
  String str = sc.next();
  Rl(str);
  }
  `
  `

  public` `static` `void` `Rl(String` str`)` `throws` `ParseException` `{`
  `SimpleDateFormat` sim `=` `new` `SimpleDateFormat("yyyy-MM-dd");`
  `Date` d `=` sim`.parse(`str`);// 将指定格式的字符串解析成 Date 时间对象 `
  `Calendar` ca `=` `Calendar.getInstance();`
  ca`.setTime(`d`);// 将 Date 时间对象转成 Calendar 对象.`
  `System.`out`.println(`ca`.get(Calendar.MONTH));`
  `int` num `=` ca`.getActualMaximum(Calendar.DAY_OF_MONTH);`
  `int` num1 `=` ca`.get(Calendar.DAY_OF_MONTH);`
  `//System.out.println(num1);// 本月第几天 `
  ca`.add(Calendar.DATE,` `-(`num1 `-` `1));// 将时间设置到本月第一天 `
  `int` week `=` ca`.get(Calendar.DAY_OF_WEEK);// 本周第几天 `
  `//System.out.println(week);// 本周第几天 `
  `System.`out`.println("日"` `+` `"\t"` `+` `"一"` `+` `"\t"` `+` `"二"` `+` `"\t"` `+` `"三"` `+` `"\t"` `+` `"四"` `+` `"\t"` `+` `"五"` `+` `"\t"` `+` `"六");`
  `int` k `=` `0;`
  `for` `(int` i `=` `1;` i `<` week`;` i`++)` `{`
  `System.`out`.print("\t");`
  k`++;`
  `}`
  `for` `(int` i `=` `1;` i `<=` num`;` i`++)` `{`
  `if` `(`k `%` `7` `==` `0)`
  `System.`out`.println();`
  `if` `(`i `==` num1`)` `{`
  `System.`out`.print("*"` `+` i `+` `"\t");`
  k`++;`
  `continue;`
  `}`
  `System.`out`.print(`i `+` `"\t");`
  k`++;`
  `}`
  `}`
  `}


计算你出生了多少天 {#计算你出生了多少天}

/**
 * Software:IntelliJ IDEA 2018.2.4 x64
 * Author: MoBai·杰
 * Date: 2020/5/5 10:17
 * ClassName:DateDemo02
 * 类描述:计算你出生了多少天?
 */
public class DateDemo02 {
	public static void main(String[] args) throws ParseException {
		// 1. 创建一个当前时间的 Date 对象 
		Date now = new Date();
		// 2. 定义一个出生日期字符串: "1999-01-06"
		String birthdayStr = "1999-01-06";

    	<span class="token comment">// 3. 创建 SimpleDateFormat 对象 </span>
    	<span class="token class-name">SimpleDateFormat</span> sdf <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">SimpleDateFormat</span><span class="token punctuation">(</span><span class="token string">"yyyy-MM-dd"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    	<span class="token comment">// 4. 将出生日期字符串转成 Date 对象 </span>
    	<span class="token class-name">Date</span> date <span class="token operator">=</span> sdf<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span>birthdayStr<span class="token punctuation">)</span><span class="token punctuation">;</span>

    	<span class="token comment">// 5. 活着的毫秒值 = 当前时间的 Date. 毫秒值 - 出生 Date 的毫秒值 </span>
    	<span class="token keyword">long</span> liveTime <span class="token operator">=</span> now<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> date<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    	<span class="token comment">// 6. 将毫秒值转成天 </span>
    	<span class="token keyword">long</span> day <span class="token operator">=</span> liveTime <span class="token operator">/</span> <span class="token number">1000</span> <span class="token operator">/</span> <span class="token number">60</span> <span class="token operator">/</span> <span class="token number">60</span> <span class="token operator">/</span> <span class="token number">24</span><span class="token punctuation">;</span>
    	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"活着的天数:"</span> <span class="token operator">+</span> day<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>



}

计算指定年份 2 月有多少天 {#计算指定年份 2 月有多少天}

import java.util.Calendar;

/**

`
`
* 
  Software:IntelliJ IDEA 2018.2.4 x64





* 
  Author: MoBai·杰





* 
  Date: 2020/5/5 10:24





* 
  ClassName:DateDemoTest01






* `
  `类描述:计算指定年份 2 月有多少天
  */
  public class DateDemoTest01 {
  public static void main(String[] args) {
  int year = 1999;
  // 1. 创建 Calendar 对象 
  Calendar cal = Calendar.getInstance();
  // 2. 调整到指定的年 
  cal.set(year, 2, 1);
  `
  `

       <span class="token comment">// 4. 再往前一天 </span>
       cal<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token class-name">Calendar</span><span class="token punctuation">.</span><span class="token constant">DAY_OF_MONTH</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
       <span class="token comment">// 5. 获取天数 </span>
       <span class="token keyword">int</span> day <span class="token operator">=</span> cal<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token class-name">Calendar</span><span class="token punctuation">.</span><span class="token constant">DAY_OF_MONTH</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

       <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>year <span class="token operator">+</span> <span class="token string">"年 2 月有"</span> <span class="token operator">+</span> day <span class="token operator">+</span> <span class="token string">"天"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>


  `
  `

  }`
  `}


使用 SimpleDateFormat 类把 2020-05-05 转换为 2020 年 05 月 05 日 {#使用 SimpleDateFormat 类把 2020-05-05 转换为 2020 年 05 月 05 日}

/**
 * Software:IntelliJ IDEA 2018.2.4 x64
 * Author: MoBai·杰
 * Date: 2020/5/5 10:42
 * ClassName:DateDemoTest02
 * 类描述:使用 SimpleDateFormat 类把 2016-12-18 转换为 2016 年 12 月 18 日
 */
public class DateDemoTest02 {
	public static void main(String[] args) throws ParseException {
		// a) 创建 SimpleDateFormat 对象 df, 指定日期模式为 yyyy-MM-dd
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		// b) 调用 df 的 parse(String str) 方法传入 2020-05-05, 得到对应日期类型 
		Date date = df.parse("2020-05-05");
		// c) 修改 df 的日期模式为 yyyy 年 MM 月 dd 日 
		df.applyPattern("yyyy 年 MM 月 dd 日");
		// d) 调用 df 的 format(Date date) 传入刚才转换为日期 
		String newStr = df.format(date);
		// e) 打印转换后的字符串 
		System.out.println(newStr);
	}
}

projectDate 类 {#projectDate 类}


import org.springframework.stereotype.Component;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**

`
`
* 
  Author: Auser·杰





* 
  Development: IntelliJ IDEA 2018.2.4 x64





* 
  ClassName: Date





* 
  ClassCreateDate: 2019/12/17 15:20






* `
  `类简介: 基于 JDK1.8 日期工具类
  */
  @Component
  public class DateUtils {
  `
  `

  public static String YYYY_MM_DD = "YYYY-MM-DD";
  `
  `

  public static String YYYYMMDD = "YYYYMMDD";
  `
  `

  public static String YYYYMMDDHHmmSS = "YYYYMMDDHHmmss";
  `
  `

  public static String YYYY_MM_DD_HH_mm_SS = "YYYY_MM_DD HH:mm:ss";
  `
  `

  /**
  `
  `

  * Author: Auser·杰


  * MethodName: getTime


  * MethodCreateDate: 2019/12/17 15:22


  * Return: java.lang.String


  * Param: [date, pattern]


  * 方法说明: 获取时间
    */
    public static String getTime(Date date, String pattern) {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
    return formatter.format(dateToDateTime(date));
    }


  `
  `

  /**
  `
  `

  * Author: Auser·杰


  * MethodName: getDate


  * MethodCreateDate: 2019/12/17 15:23


  * Return: java.util.Date


  * Param: [time, pattern]


  * 方法说明: 获取 date
    */
    public static Date getDate(String time, String pattern) {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
    return dateTimeToDate(LocalDateTime.parse(time, formatter));
    }


  `
  `

  /**
  `
  `

  * Author: Auser·杰


  * MethodName: dateToDateTime


  * MethodCreateDate: 2019/12/17 15:23


  * Return: java.time.LocalDateTime


  * Param: [date]


  * 方法说明: date 转 dateTime
    */
    private static LocalDateTime dateToDateTime(Date date) {
    Instant instant = date.toInstant();
    return LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
    }


  `
  `

  /**
  `
  ``
  `
  * Author: Auser·杰


  * MethodName: dateTimeToDate


  * MethodCreateDate: 2019/12/17 15:23


  * Return: java.util.Date


  * Param: [localDateTime]



  * `方法说明: dateTime 转 Date
    */``
    `private` `static` `Date` `dateTimeToDate(LocalDateTime` localDateTime`)` `{`
    `Date` date `=` `Date.from(`localDateTime`.atZone(ZoneId.systemDefault()).toInstant());`
    `return` date`;`
    `}`
    `}

赞(3)
未经允许不得转载:工具盒子 » 【Java 基础】Date 类练习