java如何判斷Date是上午還是下午
java判斷Date是上午還是下午
我要用Java生成表格統(tǒng)計(jì)信息,如下圖所示:

所以就誕生了本文的內(nèi)容。
在 Java 里,判斷 Date 對(duì)象代表的時(shí)間是上午還是下午有多種方式,下面為你詳細(xì)介紹不同的實(shí)現(xiàn)方法。
方式一:使用 java.util.Calendar
Calendar 類可以用來獲取 Date 對(duì)象中的各個(gè)時(shí)間字段,通過 HOUR_OF_DAY 字段能判斷是上午還是下午。
import java.util.Calendar;
import java.util.Date;
public class DateAmPmCheckWithCalendar {
public static void main(String[] args) {
// 創(chuàng)建一個(gè) Date 對(duì)象
Date currentDate = new Date();
// 獲取 Calendar 實(shí)例,并將 Date 對(duì)象設(shè)置進(jìn)去
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDate);
// 獲取 24 小時(shí)制的小時(shí)數(shù)
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour < 12) {
System.out.println("上午");
} else {
System.out.println("下午");
}
}
}代碼解釋:
- 首先創(chuàng)建了一個(gè)
Date對(duì)象currentDate表示當(dāng)前時(shí)間。 - 接著獲取
Calendar實(shí)例,并使用setTime方法將currentDate設(shè)置進(jìn)去。 - 通過
get(Calendar.HOUR_OF_DAY)獲取 24 小時(shí)制的小時(shí)數(shù)。 - 根據(jù)小時(shí)數(shù)是否小于 12 判斷是上午還是下午。
方式二:使用 java.time 包(Java 8 及以后)
Java 8 引入的 java.time 包提供了更簡(jiǎn)潔和強(qiáng)大的日期時(shí)間處理功能。
可以將 Date 轉(zhuǎn)換為 ZonedDateTime 再進(jìn)行判斷。
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
public class DateAmPmCheckWithJavaTime {
public static void main(String[] args) {
// 創(chuàng)建一個(gè) Date 對(duì)象
Date currentDate = new Date();
// 將 Date 轉(zhuǎn)換為 ZonedDateTime
ZonedDateTime zonedDateTime = currentDate.toInstant().atZone(ZoneId.systemDefault());
// 獲取 24 小時(shí)制的小時(shí)數(shù)
int hour = zonedDateTime.getHour();
if (hour < 12) {
System.out.println("上午");
} else {
System.out.println("下午");
}
}
}代碼解釋:
- 創(chuàng)建
Date對(duì)象currentDate。 - 使用
toInstant()方法將Date轉(zhuǎn)換為Instant,再通過atZone(ZoneId.systemDefault())轉(zhuǎn)換為ZonedDateTime。 - 調(diào)用
getHour()方法獲取 24 小時(shí)制的小時(shí)數(shù)。 - 根據(jù)小時(shí)數(shù)判斷是上午還是下午。
方式三:使用 SimpleDateFormat 格式化輸出判斷
可以使用 SimpleDateFormat 將 Date 格式化為包含上午/下午標(biāo)識(shí)的字符串,然后進(jìn)行判斷。
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateAmPmCheckWithFormat {
public static void main(String[] args) {
// 創(chuàng)建一個(gè) Date 對(duì)象
Date currentDate = new Date();
// 定義日期格式,使用 "a" 表示上午/下午標(biāo)識(shí)
SimpleDateFormat sdf = new SimpleDateFormat("a");
// 格式化日期
String amPm = sdf.format(currentDate);
if ("上午".equals(amPm)) {
System.out.println("上午");
} else {
System.out.println("下午");
}
}
}代碼解釋:
- 創(chuàng)建
Date對(duì)象currentDate。 - 創(chuàng)建
SimpleDateFormat對(duì)象,指定格式為"a",它會(huì)輸出上午或下午。 - 使用
format方法將Date格式化為字符串。 - 通過比較字符串判斷是上午還是下午。這種方式的語言顯示受系統(tǒng)默認(rèn)語言環(huán)境影響。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot集成websocket的四種方式小結(jié)
本文主要介紹了springboot集成websocket的四種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Java基礎(chǔ)之SpringBoot整合knife4j
Swagger現(xiàn)在已經(jīng)成了最流行的接口文檔生成與管理工具,但是你是否在用的時(shí)候也在吐槽,它是真的不好看,接口測(cè)試的json數(shù)據(jù)沒法格式化,測(cè)試地址如果更改了還要去改配置,接口測(cè)試時(shí)增加token驗(yàn)證是真的麻煩…針對(duì)Swagger的種種缺點(diǎn),Knife4j就呼之欲出了.需要的朋友可以參考下2021-05-05
利用HttpUrlConnection 上傳 接收文件的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄肏ttpUrlConnection 上傳 接收文件的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
Java實(shí)現(xiàn)FTP上傳到服務(wù)器
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)FTP上傳到服務(wù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09
Java實(shí)現(xiàn)Twitter的分布式自增ID算法snowflake
這篇文章主要介紹了Java實(shí)現(xiàn)Twitter的分布式自增ID算法snowflake,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

