控制台打印当前时间 {#控制台打印当前时间}
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`;`
`}`
`}