❶ java已知日期格式yymmdd怎麼實現加一天減一天
//對Date類型數據的天數進行加減運算,num可以是負值
public
static
Date
changeDate(Date
date,int
num)
throws
ParseException
{
Calendar
c=Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DATE,
num);
return
formatChange(c.getTime());
}
//將Date類型數據轉為yyyyMMdd格式
public
static
Date
formatChange(Date
date)
throws
ParseException
{
return
new
SimpleDateFormat("yyyyMMdd").parse(new
SimpleDateFormat("yyyyMMdd").format(date));
} //執行入口
public
static
void
main(String[]
args)
throws
ParseException
{
System.out.println(changeDate(new
Date(),-15));
}
❷ java中yyyyMMddHHmmss時間格式怎麼轉化為yyyy-MM-dd HH:mm:ss
123Stringdate="20151101095440";Stringreg="(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})";date=date.replaceAll(reg,"$1-$2-$3$4:$5:$6")。
❸ java中想要將字元串類型的201827的日期格式初始化成為yyyyMMdd的日期格式有什麼方法
importjava.text.*;
classtest
{
publicstaticvoidmain(String[]args)throwsException
{
SimpleDateFormatsdf1=newSimpleDateFormat("yyyyMd");
SimpleDateFormatsdf2=newSimpleDateFormat("yyyyMMdd");
System.out.println(sdf2.format(sdf1.parse("201827")));
}
}
❹ java如何對生日(yyyymmdd)進行合法性判斷
修改你說的存在的bug
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestBirthday {
public static void main(String[] args){
String birthday="20130132";
System.out.println(isBirthday(birthday));
}
/*
* @param : birthday 傳入一個日期格式的字元串
* 支持 yyyy-MM-dd ,yyyyMMdd MM-dd-yyyy ,yyyy年MM月dd日
* @isBirthday 判斷輸入的字元串是否是合法的生日 生日不能大於當前日期
* */
public static boolean isBirthday(String birthday){
//定義需要過濾的條件,可以將你期望的日期格式添加到數組中
String[] formats={
"yyyy-MM-dd",
"yyyyMMdd",
"MM-dd-yyyy",
"yyyy年MM月dd日"
};
/*
* 設置格式過濾器
*/
//記錄傳入的日期字元串,轉換成日期類型
Date birth=null;
//判斷格式是否正確,默認值為false
boolean isRight=false;
for(String f:formats){
try {
birth =new SimpleDateFormat(f).parse(birthday);
//校驗日期轉換後是和傳入的值不相同,說明日期傳入有問題
//修正樓上提到的bug
if(!new SimpleDateFormat(f).format(birth).equals(birthday)){
return false;
}
isRight=true;
break;
} catch (ParseException e) {}
}
if(isRight){
//獲取當前日期的毫秒數
long now =new Date().getTime();
//獲取生日的毫秒數
long birthTime = birth.getTime();
//如果當前時間小於生日,生日不合法。反之合法
return birthTime<=now;
}else{
//輸入的參數類型不是日期類型,或者類型和過濾中設置的類型不匹配
return false;
}
}
}
❺ Java如何獲取Date類型且格式為yyyy-mm-dd的日期數據
@return返回長時間格式 yyyy-MM-dd HH:mm:ss
*/ public static Date getSqlDate() {
Date sqlDate = new java.sql.Date(new Date().getTime());
return sqlDate; }
/**
* 獲取現在時間
@return返回長時間格式 yyyy-MM-dd HH:mm:ss
*/ public static Date getNowDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
ParsePosition pos = new ParsePosition(8);
java.sql 類 Date
java.lang.Object
java.util.Date
java.sql.Date
所有已實現的介面:
Serializable,Cloneable,Comparable<Date>
public class Dateextends Date
概述:一個包裝了毫秒值的瘦包裝器 (thin wrapper),它允許 JDBC 將毫秒值標識為 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以來經過的毫秒數。
為了與 SQL DATE 的定義一致,由 java.sql.Date 實例包裝的毫秒值必須通過將小時、分鍾、秒和毫秒設置為與該實例相關的特定時區中的零來「規范化」。
以上內容參考:網路-date
❻ java日期類型用yyyyMMdd樣式輸出,要求輸出的格式是日期類型
1.
你既然要求結果還是date類型,d2怎麼是string,改成date
d2
=
format.parse(d);
2.
date類型的數據是不存在格式問題的,只有你format或者tostring轉化成字元串之後輸出才有格式,列印出fri
aug
02
00:00:00
cst
2013,只是date的默認格式
❼ java中的Date怎麼轉換成YYYYMMDD形式的
SimpleDateFormat inSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
創建SimpleDateFormat對象的時候使用帶Locale的構造參數
因為你的星期和月份是用E文寫的 所以parse回來的時候自然得用E文的Locale 用默認中文的Locale就會認不出來
btw 你用US的Locale的話 時區也會跑那裡去 所以你應該給時區指定GMT+08:00 而不是光一個GMT
參考這段小代碼
String s ="Thu, 02 Mar 2006 05:14:25 GMT+08:00";
SimpleDateFormat inSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
SimpleDateFormat outSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.CHINA);
try {
Date dateS = inSdf.parse(s);
System.out.println(outSdf.format(dateS));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
❽ java 正則表達式驗證日期格式 yyyy-MM-dd,如何寫
我前不久剛好整了這段代碼,你仔細看一下:
閏年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
平年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
上面代碼驗證的格式是yyyyMMdd,看懂了這個,你那個也就清楚了
❾ Java怎麼命名日期格式常量,如「yyyy-MM-dd」
/** 日期格式,年份-月份-日*/ public static final String DF_STANDARD = "yyyy-MM-dd";
/**日期格式,年份/月份/日*/public static final String DF_STANDARD = "yyyy/MM/dd";
/** 日期格式,年份-月份-日*/ public static final String DF_YYYYMMDD = "yyyyMMdd";