① excel中日期格式是數字,想轉成java的日期格式,遇到了問題
java讀取excel時間格式出現數字的處理方法:
Excel存儲日期、時間均以數值類型進行存儲,讀取時POI先判斷是是否是數值類型,再進行判斷轉化
1、數值格式(CELL_TYPE_NUMERIC):
1.純數值格式:getNumericCellValue() 直接獲取數據
2.日期格式:處理yyyy-MM-dd, d/m/yyyy h:mm, HH:mm 等不含文字的日期格式
1).判斷是否是日期格式:HSSFDateUtil.isCellDateFormatted(cell)
2).判斷是日期或者時間
cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("h:mm")
OR: cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("yyyy-MM-dd")
3.自定義日期格式:處理yyyy年m月d日,h時mm分,yyyy年m月等含文字的日期格式
判斷cell.getCellStyle().getDataFormat()值,解析數值格式
yyyy年m月d日----->31
m月d日---->58
h時mm分--->32
舉例說明:
private String parseExcel(Cell cell) {
String result = new String();
② java 編程從屏幕輸入8-10位字元串,判斷是否為日期
publicstaticvoidmain(String[]args)
{
StringcheckValue="2000/03/31";
checkValue=checkValue.replaceAll("/","")+"000000";
Stringyear=checkValue.substring(0,4);//獲取年份
Stringmonth=checkValue.substring(4,6);//獲取月份
BooleanisLeap=leapYear(Integer.parseInt(year));//判斷閏年
System.out.println(isLeap);
StringBuffereL=newStringBuffer();
StringlongMonth="01030507081012";//31天的月份
Stringfix="([2][0-3]|[0-1][0-9]|[1-9])[0-5][0-9]([0-5][0-9]|[6][0])";
if(isLeap&&month.equals("02")){//針對2月份的情況【閏年】
eL.append("\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}elseif(!isLeap&&month.equals("02")){//針對2月份的情況【非閏年】
eL.append("\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-8]|[0][1-9]|[1-9])"+fix);
}elseif(longMonth.contains(month)){//31天月份
eL.append("\d{4}([1][0-2]|[0][0-9])([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}else{//30天月份
eL.append("\d{4}([1][0-2]|[0][0-9])([3][0]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}
Patternp=Pattern.compile(eL.toString());
Matcherm=p.matcher(checkValue);
booleanflag=m.matches();
if(flag)
{
System.out.println("格式正確");
}
else
{
System.out.println("格式錯誤");
}
}
publicstaticbooleanleapYear(intyear){
BooleanisLeap=false;
if(((year%100==0)&&(year%400==0))
||((year%100!=0)&&(year%4==0)))
isLeap=true;
returnisLeap;
}
③ java 判斷某個日期是不是今天
給您寫了一遍。
packagedemo;
importjava.text.SimpleDateFormat;
importjava.util.Date;
/**
*
*開發公司:SOJSON在線工具<p>
*版權所有:©www.sojson.com
*博客地址:http://www.sojson.com/blog/
*<p>
*
*注釋寫這里
*
*<p>
*
*區分責任人日期說明<br/>
*創建周柏成2017年4月18日<br/>
*
*@authorzhou-cheng
*@[email protected]
*@version1.0,2017年4月18日<br/>
*
*/
publicclassMain{
publicstaticvoidmain(String[]args){
//調用
booleanresult=isNow(newDate());
System.out.println(result?"是今天。":"不是今天。");
}
/**
*判斷時間是不是今天
*@paramdate
*@return是返回true,不是返回false
*/
privatestaticbooleanisNow(Datedate){
//當前時間
Datenow=newDate();
SimpleDateFormatsf=newSimpleDateFormat("yyyyMMdd");
//獲取今天的日期
StringnowDay=sf.format(now);
//對比的時間
Stringday=sf.format(date);
returnday.equals(nowDay);}
}
④ 求解,Java如何判斷Date類型的日期格式是什麼
1、Date是沒有格式的。
Date是一個包裝了毫秒值的瘦包裝器,表示自 1970 年 1 月 1 日 00:00:00 GMT 以來經過的毫秒數。
2、那麼我們通常說的日期格式是怎麼回事呢?
我們說的日期格式,是將Date,即是毫秒數按照一定的格式展示給我們,展示出來的值是【String字元串】而不是【Date日期】
所以,你可以將Date轉化為任意你要的格式
舉例說明下:
⑤ 如何判斷java 一個String字元串里有沒有日期並且修改成指定格式
可以使用正則表達式進行匹配替換,例如下面代碼:
publicclassApp50{
publicstaticvoidmain(String[]args){
Stringdemo="這個日期是2018/5/6書寫出來的";
//xxxx年xx月xx日格式
Stringdemo2=demo.replaceAll("(\d{4})/(\d{1,2})/(\d{1,2})","$1年$2月$3日");
System.out.println(demo2);
//xxxx-xx-xx格式
demo2=demo.replaceAll("(\d{4})/(\d{1,2})/(\d{1,2})","$1-$2-$3");
System.out.println(demo2);
}
}
運行結果:
這個日期是2018年5月6日書寫出來的
這個日期是2018-5-6書寫出來的
⑥ 用JAVA正則表達式怎麼匹配年月日(比如要求輸入為出生日期)
建議使用 ^(\d{2}|\d{4})[-/](0?[1-9]|1[12])[-/](0?[1-9]|[12]\d|3[01])$ 來匹配(日期不一定有效),然後嘗試轉換成日期.如果要嚴謹點可以用^(\d{2}|\d{4})[-/](((0?[13578]|10|12)[-/](0?[1-9]|[12]\d|3[01]))|((0?[469]|11)[-/](0?[1-9]|[12]\d|30))|(0?2[-/](0?[1-9]|[12]\d)))$但是這里還是有個問題:將所有年份的2月29日都當作有效日期