java日期判斷,Java判斷日期大小

本文目錄一覽:

使用Java如何驗證所以日期是否正確

Java為了支持多語言,沒有固定的日期格式。你需要根據自己的需要指定日期格式,然後用DateFormat類或者SimpleDateFormat類來判斷是否是正確的日期格式。下面的例子供參考。更詳細的內容(比如yyyy,MM,dd各代表什麼)可以參考javadoc。

public class DateUtil

{

private static final SimpleDateFormat dateFormat = null;

static

{

// 指定日期格式為四位年/兩位月份/兩位日期,注意yyyy/MM/dd區分大小寫;

dateFormat = new SimpleDateFormat(“yyyy/MM/dd”);

// 設置lenient為false. 否則SimpleDateFormat會比較寬鬆地驗證日期,比如2007/02/29會被接受,並轉換成2007/03/01

dateFormat.setLenient(false);

}

public static boolean isValidDate(String s)

{

try

{

dateFormat.parse(s);

return true;

}

catch (Exception e)

{

// 如果throw java.text.ParseException或者NullPointerException,就說明格式不對

return false;

}

}

// 下面這個方法則可以將一個日期按照你指定的格式輸出

public static String formatDate(Date d)

{

return dateFormat.format(d);

}

}

java中如何判斷輸入的日期是否合法?

java.text.DateFormat dateFormat= new java.text.SimpleDateFormat(“yyyy-MM-dd kk:mm:ss”, Locale.ENGLISH);

dateFormat.setLenient(false);

java.util.Date timeDate = dateFormat.parse(dateString);

//轉換為util類型

看到dateFormat.setLenient(false);沒有,設定其為false就是強制判斷是否非法日期,不讓系統自動轉換,否則2月31號系統會自動轉換為3月2號或者3號。

java中怎麼判斷輸入的日期是否合法?

import java.util.*;

import java.util.regex.*;

import java.text.*;

/** 這個是按照樓主的描述使用通過判斷字元驗證時間合法性 */

public class DateUtils2 {

//測試代碼 begin

public static void main(String[] s){

//以下是測試代碼

test(“20099-1-1”);

test(“20099-100-1”);

test(“20099-1-100”);

test(“2009-1-1”);

test(“2009-1-31”);

test(“2009-2-28”);

test(“2009-2-29”);

test(“2008-2-29”);

}

private static void test(String stringdate){

System.out.println(“輸入[” + stringdate + “]是否合法:” + validate(stringdate));

}

//測試代碼 end

//==

/** 判斷主方法 */

public static boolean validate(String dateString){

//使用正則表達式 測試 字元 符合 dddd-dd-dd 的格式(d表示數字)

Pattern p = Pattern.compile(“\\d{4}+[-]\\d{1,2}+[-]\\d{1,2}+”);

Matcher m = p.matcher(dateString);

if(!m.matches()){ return false;}

//得到年月日

String[] array = dateString.split(“-“);

int year = Integer.valueOf(array[0]);

int month = Integer.valueOf(array[1]);

int day = Integer.valueOf(array[2]);

if(month1 || month12){ return false;}

int[] monthLengths = new int[]{0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if(isLeapYear(year)){

monthLengths[2] = 29;

}else{

monthLengths[2] = 28;

}

int monthLength = monthLengths[month];

if(day1 || daymonthLength){

return false;

}

return true;

}

/** 是否是閏年 */

private static boolean isLeapYear(int year){

return ((year % 4 == 0 year % 100 != 0) || year % 400 == 0) ;

}

}

java判斷某日期 是否超過今天

一、使用Date類創建日期對象

Date date1 = new Date(2017, 5, 20);

二、通過Calendar獲得當前日期

Date now;

Calendar c = Calendar.getInstance();

now = new Date(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, c.get(Calendar.DAY_OF_MONTH));

三、使用Date類的after()方法判斷一個日期是否在另一個日期的後面

if(date1.after(now)) {

System.out.println(“超過了今天”);

}

else {

System.out.println(“沒有超過今天”);

}

四、完整的Java程序

import java.util.Calendar;

import java.util.Date;

public class Main {

public static void main(String[] args) {

Date date1 = new Date(2017, 5, 20);

Date now;

Calendar c = Calendar.getInstance();

now = new Date(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, c.get(Calendar.DAY_OF_MONTH));

if(date1.after(now)) {

System.out.println(“超過了今天”);

}

else {

System.out.println(“沒有超過今天”);

}

}

}

五、運行測試

沒有超過今天

java判斷是否是日期

樓主提出的問題有點片面,我的理解是,你是不是想判斷字元串是不是日期格式?如果已經是日期類型,那就不需要判斷了,對把。判斷給定字元串是不是日期我給你提供兩種解決思路,一種是用正則,代碼我給你寫好了。

public boolean isDate(String date) {

/**

 * 判斷日期格式和範圍

 */

String rexp = “^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))”;

Pattern pat = Pattern.compile(rexp);

Matcher mat = pat.matcher(date);

boolean dateType = mat.matches();

return dateType;

}

參數就是你要判斷的日期字元串,返回布爾值;

另一種方式就是:玩字元串正則才是王道嘛!希望採納

public boolean isValidDate(String str) {

boolean convertSuccess = true;

// 指定日期格式為四位年/兩位月份/兩位日期,注意yyyy/MM/dd區分大小寫;

//如果想判斷格式為yyyy-MM-dd,需要寫成-分隔符的形式

SimpleDateFormat format = new SimpleDateFormat(“yyyy/MM/dd HH:mm”);

try {

format.setLenient(false);

format.parse(str);

} catch (ParseException e) {

// e.printStackTrace();

// 如果拋出ParseException或者NullPointerException,就說明格式不對

convertSuccess = false;

}

return convertSuccess;

}

推薦使用正則,

java 判斷某個日期是不是今天

給您寫了一遍。

代碼:

package demo;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

 * 

 * 開發公司:SOJSON在線工具 p

 * 版權所有:© 

 * 博客地址:

 * p

 * 

 * 注釋寫這裡

 * 

 * p

 * 

 * 區分 責任人 日期說明br/

 * 創建 周柏成 2017年4月18日  br/

 *

 * @author zhou-baicheng

 * @email  so@sojson.com

 * @version 1.0,2017年4月18日 br/

 * 

 */

public class Main {

    public static void main(String[] args) {

        //調用

        boolean result = isNow(new Date());

        System.out.println( result?”是今天。”:”不是今天。” );

        

    }

    /**

     * 判斷時間是不是今天

     * @param date

     * @return    是返回true,不是返回false

     */

    private static boolean isNow(Date date) {

        //當前時間

        Date now = new Date();

        SimpleDateFormat sf = new SimpleDateFormat(“yyyyMMdd”);

        //獲取今天的日期

        String nowDay = sf.format(now);

        

        

        //對比的時間

        String day = sf.format(date);

        

        return day.equals(nowDay);

        

        

        

    }

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/236157.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 11:58
下一篇 2024-12-12 11:58

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論