java日期工具類
Ⅰ 怎樣用java語言實現一個時間日期工具類:DateUtils通過調用該類的方法可以實現以下功能:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtils {
/**
* 可胡桐以獲取當前時間(JAVA.UTIL.DATE)
* @return 當前時間
*/
public static Date getCurDate() {
return new Date();
}
/**
* 可以獲取當前時間(YYYY-MM-DD HH:MI:SS.mmm)
* @return 當前時間
*/
public static String getCurDateStr() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS");
return sdf.format(getCurDate());
}
/**
* 比較兩個時間大小
* @param date1
* @param date2
* @return date1大於date2 返回1,date1等於date2 返回0, date1少於date2 返回褲搜坦-1
*/
public static int compare(Date date1, Date date2) {
return date1.compareTo(date2);
}
/**
* 獲取當前日期的下個7天的日期(JAVA.UTIL.DATE)
* @return 當前日期的下個7天的日期(JAVA.UTIL.DATE)
*/
public static Date getNextWeek() {
Date date = getCurDate();
long l = date.getTime();
l += 1000 * 60 * 60 * 24 * 7;
return new Date(l);
}
/**
* 獲取當前日期的下個7天的日期(YYYY-MM-DD HH:MI:SS.mmm)
* @return 當前日期的下個7天的漏戚日期(YYYY-MM-DD HH:MI:SS.mmm)
*/
public static String getNextWeekStr() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS");
return sdf.format(getNextWeek());
}
}
Ⅱ java 什麼叫工具類
是包含集合框架、遺留的 collection 類、事件模型、日期和時間設施、國際化和各種實用工具類(字元串標記生成器、隨機數生成器和位數組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時間處理模式、日期時間工具等各類常用工具包
Ⅲ java怎麼獲得當前年月日並賦給變數
Java獲得當前年月日並賦值給變數,主要是使用java 提供的工具類Calendar,Date來獲取,如下代碼:
packagecom.ob;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
publicclassDateTest{
publicstaticvoidmain(String[]args)throwsParseException{
Calendarnow=Calendar.getInstance();
System.out.println("年:"+now.get(Calendar.YEAR));
System.out.println("月:"+(now.get(Calendar.MONTH)+1)+"");
System.out.println("日:"+now.get(Calendar.DAY_OF_MONTH));
System.out.println("時:"+now.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+now.get(Calendar.MINUTE));
System.out.println("秒:"+now.get(Calendar.SECOND));
System.out.println("當前時間毫秒數:"+now.getTimeInMillis());
System.out.println(now.getTime());
Dated=newDate();
System.out.println(d);
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
StringdateNowStr=sdf.format(d);
System.out.println("格式化後的日期:"+dateNowStr);
Stringstr="2012-1-1317:26:33";//要跟上面sdf定義的格式一樣
Datetoday=sdf.parse(str);
System.out.println("字元串轉成日期:"+today);
}
}
輸出結果:
年: 2012
月: 1
日: 13
時: 17
分: 28
秒: 19
當前時間毫秒數:1326446899902
Fri Jan 13 17:28:19 CST 2012
Fri Jan 13 17:28:19 CST 2012
格式化後的日期:2012-01-13 17:28:19
字元串轉成日期:Fri Jan 13 17:26:33 CST 2012
Ⅳ 用java定義一個日期類,急!!!
class MyDate{
public int year,month,day;
public MyDate(MyDate date){
year=date.year;
month=date.month;
day=date.day;
}
public boolean isLeapYear(){
return (((year%4==0)&&(year%100!=0))||(year%400==0));
}
public MyDate(int y,int m,int d){
year=y;
month=m;
day=d;
if(((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))&&((day<1)||(day>31))) System.out.println("wrong date");
if(((month==4)||(month==6)||(month==9)||(month==11))&&((day<1)||(day>30))) System.out.println("wrong date");
if(month==2){
if(isLeapYear()&&((day<1)||(day>29))) System.out.println("wrong date");
if(!isLeapYear()&&((day<1)||(day>28))) System.out.println("wrong date");
}
}
public boolean equal(MyDate date){
return (year==date.year && month==date.month && day==date.day);
}
public void incrementDay(){
if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)){
int flag=0;
if(day==31){month+=1;flag=1;}
if((day<=30)&&(day>=1)){day+=1;}
if(flag==1) day=1;
flag=0;
}
if((month==4)||(month==6)||(month==9)||(month==11)){
int flag=0;
if(day==30){month+=1;flag=1;}
if((day<=29)&&(day>=1)){day+=1;}
if(flag==1) day=1;
flag=0;
}
if(month==12){
int flag=0;
if(day==31){year+=1;month=1;flag=1;}
if((day>=1)&&(day<=30)){day+=1;}
if(flag==1) day=1;
flag=0;
}
if(month==2){
int flag=0;
if(isLeapYear()){
if(day==29){month+=1;flag=1;}
if((day<=28)&&(day>=1)){day+=1;}
if(flag==1) day=1;
flag=0;
}
else{
if(day==28){month+=1;flag=1;}
if((day<=27)&&(day>=1)){day+=1;}
if(flag==1) day=1;
flag=0;
}
}
}
public int getYear(){
return year;
}
public int getMonth(){
return month;
}
public int getDay(){
return day;
}
public String toString(){
return (year+"-"+month+"-"+day);
}
}
public class Mytest{
public static void main(String[] test){
MyDate date1=new MyDate(2000,2,28);
MyDate date2=new MyDate(2006,12,31);
MyDate date3=new MyDate(date2);
System.out.println(date3.equal(date2));
date1.incrementDay();
System.out.println(date1.getYear()+" "+date1.getMonth()+" "+date1.getDay());
System.out.println(date1.toString());
date2.incrementDay();
System.out.println(date2.getYear()+" "+date2.getMonth()+" "+date2.getDay());
System.out.println(date2.toString());
}
}
Ⅳ java程序定義一個日期類
正好我這有一個日期的工具類,你參考一下。我是握陸直接黏貼進來的,看起來感覺有點亂,你復制後放到eclipse里看就整齊了。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.junit.Test;
/**
* @author Administrator
* 各種日期、時間轉換的示例總結:
*/
public class DateFormatUtil {
/**
* 將當前時間轉換成指定格式的日期形式的字元純皮困串輸出
* */
@Test
public void dateToStr(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = sdf.format(new Date());
System.out.println(dateString);
}
/**
* 將給定時間格式的字元串,解析成Date輸出
* @throws ParseException
* */
@Test
public void strToDate() throws ParseException{
String str = "201012241002";//yyyyMMddhhmm
SimpleDateFormat sdf = new SimpleDateFormat("做念yyyyMMddhhmm");
Date date = sdf.parse(str);
System.out.println(date);
}
/**
* 字元串,格式化 為指定字元串
* @throws ParseException
*/
@Test
public void formatstr()throws ParseException{
String str = "20170314155847";//yyyyMMddhhmm
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str2 = sdf2.format(sdf.parse(str));
System.out.println(str2);
}
/**
* 操作時間:當前時間減去一天,一月,一年
*/
@Test
public void oprateDate(){
Date date = new Date();//獲取當前時間
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// calendar.add(Calendar.YEAR, -1);//當前時間減去一年,即一年前的時間
// calendar.add(Calendar.MONTH, -1);//當前時間前去一個月,即一個月前的時間
calendar.add(Calendar.DATE, -1);
Date time = calendar.getTime();//獲取一年前的時間,或者一個月前的時間
System.out.println(time);
}
}
Ⅵ 每個Java程序運行時系統用到那些低級的實用工具如處理時間的Date類,都會需要用
選枯蔽 D
A 選項的 java.lang 包是全局引入的, 不需要沒悔州使用 import 語句引用
B 選項的 java.io 包是輸入輸出流, 比如讀寫文件之類的操作才需要用到
C 選項的 java.awt 包是圖形化界面使用的包, 開發桌面圖形化應用才需要使前橋用
D 選項的 java.util 包是工具類, 時間日期等通用工具類都在這個包下
Ⅶ 你常用的Java工具庫都有哪些
JavaSDK肯定是使用最廣的庫,所以本文的名單焦點是流行的第三方庫。該列表可能並不完善,所以如果你覺得有什麼應該出現在列表中的,請留下您的評論。非常感謝!
1、核心庫
Apache Commons Lang:來自Apache的核心庫,為java.lang API補充了許多常用的工具類,如字元串操作、對象的創建等。
Google Guava:來自谷歌的核心庫,包括集合(Collection)、緩存(Caching)、支持原語(Primitives)等。(示例)
Jsoup:一個簡化了的 HTML操作的庫。(示例)
STaX:一組可以高效處理XML的API。 (示例)
Spring:Java平台上眾所周知的開源框架和依賴注入容器。(示例)
Struts2:來自Apache的流行Web框架。 (示例)
GoogleWebToolkit:Google提供的開發工具庫,主要用於構建和優化復雜的Web程序用。 (示例)
Strips:使用最新Java技術構建的Web程序框架,推薦使用。
Tapestry:面向組件的框架,用於使用Java創建動態、健壯、擴展性高的Web應用程序。
JFreeChart:用於創建如條形圖、折線圖、餅圖等圖表。
JFreeReport:創建於輸出PDF格式的報表。
JGraphT:創建圖像,其中只包含由線段連接的點集。
Swing:SDK提供的GUI庫。(示例)
SWT:eclipse提供的GUI庫。
EclipseRCP。(示例)
OpenNLP:來自Apache的自然語言處理庫。 (示例)
StanfordParser:斯坦福大學提供的自然語言處理庫。(示例)
EclipseJDT:由IBM提供的靜態分析庫,可以操作Java源代碼。(示例)
WALA:可以處理jar包文件(即位元組碼)的工具庫。(示例)
Jackson: 用於處理JSON數據格式的多用途的Java庫。Jackson 旨在快速、准確、輕量、對開人員友好之間找到最好的平衡點。
XStream:一個簡單用於對象和XML互相轉換的庫。
GoogleGson:一個專門用於Java對象和Json對象相互轉換的工具庫。(示例)
JSON-lib:用於beans、maps、collections、javaarrays、XML和JSON之間相互轉換操作的工具庫。
ApacheCommonsMath:提供數學計算和數值統計需函數的工具庫。
ApacheLog4j:風行一時的日誌記錄操作庫。(示例)
Logback:當前流行的log4j項目的繼任者。
SLF4J(TheSimpleLoggingFacadeforJava): 各種日誌框架的一個簡單的外觀或抽象(如java.util.logging 、logback、log4j等),允許用戶在部署時加入需要的日誌框架。
ApachePOI:利用其提供的APIs,可以使用純Java代碼操作各種基於微軟OLE2合成文檔格式的文檔。
Docx4j:一個用於創建、操作微軟公開的XML文件的庫(支持Worddocx、 Powerpointpptx和Excelxlsx)。
Joda-Time:如有質量問題包退包換的Java日期和時間類。
Hibernate、EclipseLink、JPA
JDO
jOOQ
SpringJDBC、SpringData
ApacheDbUtils
Lambok: 旨在減少代碼編寫的Java開發庫。
2、HTML、XML Parser
3、Web框架
請猛擊這里查看以上面框架之間的比較。
4、圖表、報表、圖像
5、窗口
SWT與Swing的比較。
6.、GUI框架
7、自然語言處理
如果你是一名NLP專家,請猛擊這里查看更多工具庫介紹。
8、靜態分析
9、JSON
10、數學
11、日誌
12、Office
13、日期和時間
14、資料庫
15、開發工具
Ⅷ 3hutool源碼分析:DateUtil(時間工具類)-獲取日期的各種內容
知其然,知其所以然
此博文的依據:hutool-5.6.5版本源碼
獲得年的部分
源碼的**DateTime.of(date).year()**可拆解成兩部分
第一部分,看代碼很好理解,就是類型的轉化
第二部分,
從代碼跟下來,可以發現會走到 toCalendar().get(field)
**toCalendar()**會得到Calendar,這會就好理解可以獲取年了。
不止可以獲取年,還可以獲取年,月,日,時,分,秒。詳細介紹可以看這里:萬字博文教你搞懂java源碼的日期和時間相關用法
獲得指定日期所屬季度,從1開始計數
源碼的**DateTime.of(date).quarter()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,month()獲取DateTime對應的月份,然後再做了一個簡單計算。
getField方法上面有介紹了,這里就不水字了。
獲得指定日期所屬季度,返回的是季度枚舉對象Quarter
源碼的**DateTime.of(date).quarterEnum()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,quarter()上面有源碼分析,結論是獲取 獲得當前日期所屬季度,從1開始計數
**Quarter.of(int)**就是把對應的數值轉為對應的枚舉Quarter
獲得月份,從0開始計數
源碼的**DateTime.of(date).month()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
獲得月份,返回月份枚舉對象Month
源碼的**DateTime.of(date).monthEnum()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,month()是獲得月份,從0開始計數
**Month.of(int)**就是把對應的數值轉為對應的枚舉Month
獲得指定日期是所在年份的第幾周
此方法返回值與一周的第一天有關,比如:
2016年1月3日為周日,如果一周的第一天為周日,那這天是第二周(返回2)
如果一周的第一天為周一,那這天是第一周(返回1)
跨年的那個星期得到的結果總是1
源碼的**DateTime.of(date).weekOfYear()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
獲得指定日期是所在月份的第幾周
源碼的**DateTime.of(date).year()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
獲得指定日期是這個日期所在月份的第幾天
源碼的**DateTime.of(date).dayOfMonth()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
獲得指定日期是這個日期所在年的第幾天
源碼的**DateTime.of(date).dayOfYear()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
獲得指定日期是星期幾,1表示周日,2表示周一
源碼的**DateTime.of(date).dayOfWeek()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
獲得指定日期是星期幾
源碼的**DateTime.of(date).dayOfWeekEnum()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,dayOfWeek()是獲得指定日期是星期幾,1表示周日,2表示周一
**Week.of(int)**就是把對應的數值轉為對應的枚舉Week
獲得指定日期的小時數部分
源碼的**DateTime.of(date).hour(is24HourClock)**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
is24HourClock ? DateField.HOUR_OF_DAY : DateField.HOUR :is24HourClock 是否24小時制
DateField.HOUR_OF_DAY :小時,用於24小時制
DateField.HOUR :小時,用於12小時制
獲得指定日期的分鍾數部分
例如:10:04:15.250 =》 4
源碼的**DateTime.of(date).minute()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
獲得指定日期的秒數部分
源碼的**DateTime.of(date).second()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
獲得指定日期的毫秒數部分
源碼的**DateTime.of(date).millisecond()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
是否為上午
源碼的**DateTime.of(date).isAM()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
做了一個判斷 Calendar.AM == getField(DateField.AM_PM)
是否為下午
源碼的**DateTime.of(date).isPM()**可拆解成兩部分
DateTime.of(date)上面有介紹了,這里就不水字了。
第二部分,getField方法上面有介紹了,這里就不水字了。
做了一個判斷 Calendar.PM== getField(DateField.AM_PM)
返回今年
源碼的**year(date())**可拆解成兩部分
DateTime.date()
返回當前月份
源碼的**month(date())**可拆解成兩部分
DateTime.date()
返回當前月份
源碼的**monthEnum(date())**可拆解成兩部分
DateTime.date()
返回當前日期所在年份的第幾周
源碼的**weekOfYear(date())**可拆解成兩部分
DateTime.date()
返回當前日期所在月份的第幾周
源碼的**weekOfMonth(date())**可拆解成兩部分
DateTime.date()
返回當前日期是這個日期所在月份的第幾天
源碼的**dayOfMonth(date())**可拆解成兩部分
DateTime.date()
返回當前日期是星期幾
源碼的**dayOfWeek(date())**可拆解成兩部分
DateTime.date()
返回當前日期是星期幾
源碼的**dayOfWeekEnum(date())**可拆解成兩部分
DateTime.date()
返回當前日期的小時數部分
源碼的**hour(date(), is24HourClock)**可拆解成兩部分
DateTime.date()
返回當前日期的分鍾數部分
源碼的**minute(date())**可拆解成兩部分
DateTime.date()
返回當前日期的秒數部分
源碼的**second(date())**可拆解成兩部分
DateTime.date()
返回當前日期的毫秒數部分
源碼的**millisecond(date())**可拆解成兩部分
DateTime.date()
獲得指定日期年份和季節
格式:[20131]表示2013年第一季度
源碼的**yearAndQuarter(calendar(date))**可拆解成兩部分
yearAndQuarter方法代碼分析:
獲取年份 cal.get(Calendar.YEAR)
獲取季度 cal.get(Calendar.MONTH) / 3 + 1
然後通過StringBuilder拼接字元串
獲得指定日期區間內的年份和季節
如上面代碼所示,有個判空處理
然後,寫了一個while循環,把符合條件的年份和季度存到LinkedHashSet里,存完一個年份和季度的字元串後,會給開始時間增加3個月,如果開始時間超出結束時間,讓結束時間為開始時間,處理完後結束循環
Ⅸ java的string如何設置有效期
Java中的String對象咐早飢沒有有效期相關的屬性,因此不能單獨設置有效期。如果需要實現類似的功能,可以使用Map來存儲String對象並添加一個時間戳,以便衡返判斷其睜纖是否過期。
Ⅹ 使用java,定義一個滿足下列要求的Date類:1,用下面格式輸出日期:日/月/年,
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @author:
* @description:
*/
public class Test {
public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"李褲);
public static Calendar c = Calendar.getInstance();
/**
* @param specifiedDay
* @return 獲得指定日銷燃期的後一天
*/
public static String getSpecifiedDayAfter(String specifiedDay) {
Date date = null;
try {
date = sdf.parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + 1);
String dayAfter = sdf.format(c.getTime());
return dayAfter;
}
}
//Calendar 是一個虧擾虛工具類,裡面有設置日期的一系列方法
//SimpleDateFormat 這個類對日期進行格式化