java 某年某月第几周第几天 是几月几号
发布时间:2025-05-19 21:47:43 发布人:远客网络
一、java 某年某月第几周第几天 是几月几号
import java.text.SimpleDateFormat;
*@version创建时间:Created on Feb 27, 2008
@SuppressWarnings("static-access")
public static int coutYear(Date from,Date to){
Calendar calendar= Calendar.getInstance();
int toYear= calendar.get(Calendar.YEAR);
int fromYear= calendar.get(Calendar.YEAR);
return Math.abs(toYear- fromYear);
*得到系统当前日期的字符串表示,默认格式为(yyyy-MM-dd)
public static String nowDate(String format){
if(format==null||format.equals("")){
SimpleDateFormat sdf= new SimpleDateFormat(format);
return sdf.format(new Date());
*得到指定日期指定格式的字符串表示。
public static String dateToString(Date date,String format){
if(format==null||format.equals("")){
SimpleDateFormat sdf= new SimpleDateFormat(format);
*得到默认格式(yyyy-MM-dd)的当前日期的字符串表示
public static String nowDate(){
*@return返回指定格式的字符串日期
public static String previousYearNowDate(String format){
if(format==null||format.equals("")){
Calendar calendar= Calendar.getInstance();
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)-1);
SimpleDateFormat sdf= new SimpleDateFormat(format);
return sdf.format(calendar.getTime());
*@return返回默认格式的字符串日期
public static String previousYearNowDate(){
return previousYearNowDate(null);
*@return Date返回类型为日期类型 java.util.Date;
public static Date previousYearNowDate_Date(){
Calendar calendar= Calendar.getInstance();
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)-1);
*@return返回类型为指定格式的字符串
public static String nextYearNowDate(String format){
if(format==null||format.equals("")){
Calendar calendar= Calendar.getInstance();
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)+1);
SimpleDateFormat sdf= new SimpleDateFormat(format);
return sdf.format(calendar.getTime());
*@return返回类型为默认格式的字符串
public static String nextYearNowDate(){
return nextYearNowDate(null);
*@return返回类型为日期类型java.util.Date;
public static Date nextYearNowDate_Date(){
Calendar calendar= Calendar.getInstance();
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)+1);
*@return返回类型为日期类型java.util.Date;
public static Date dateOfAccordYear(int year){
Calendar calendar= Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
*得到指定偏移量的年份的今天的日期
*@param offset偏移量,为正数向后数,为正数向前数。
*@return返回类型为默认格式的字符串
public static String dateOfAccordYear_String(int offset,String format){
if(format==null||format.equals("")){
Calendar calendar= Calendar.getInstance();
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)+offset);
SimpleDateFormat sdf= new SimpleDateFormat(format);
return sdf.format(calendar.getTime());
*得到默认格式指定偏移量的年份的今天的日期
*@param offset偏移量,为正数向后数,为正数向前数。
*@return返回类型为默认格式的字符串
public static String dateOfAccordYear_String(int offset){
return dateOfAccordYear_String(offset,null);
*得到指定偏移量的年份的今天的日期
*@param offset偏移量,为正数向后数,为正数向前数。
*@return返回类型为日期类型java.util.Date;
public static Date dateOfAccordYear_Date(int offset){
Calendar calendar= Calendar.getInstance();
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)+offset);
*通过指定年得到指定年的第一天第一刻
public static Date firstDateOfYear_Date(Integer year){
Calendar calendar= Calendar.getInstance();
calendar.set(calendar.get(Calendar.YEAR), 0, 1, 0, 0, 0);
calendar.set(year, 0, 1, 0, 0, 0);
calendar.set(Calendar.MILLISECOND, 0);
*按照指定年份指定格式得到指定年的第一天第一刻字符串格式的日期
public static String firstDateOfYear_String(Integer year,String format){
if(format==null||format.equals("")){
Calendar calendar= Calendar.getInstance();
calendar.set(calendar.get(Calendar.YEAR), 0, 1, 0, 0, 0);
calendar.set(year, 0, 1, 0, 0, 0);
calendar.set(Calendar.MILLISECOND, 0);
SimpleDateFormat sdf= new SimpleDateFormat(format);
return sdf.format(calendar.getTime());
*得到指定年份的最后一天的最后时刻
public static Date lastDateOfYear_Date(Integer year){
Calendar calendar= Calendar.getInstance();
calendar.set(calendar.get(Calendar.YEAR)+1, 0, 1, 0, 0, 0);
calendar.set(year+1, 0, 1, 0, 0, 0);
calendar.set(Calendar.MILLISECOND, 0);
return new Date(calendar.getTime().getTime()-1);
*得到指定年份的最后一天的最后时刻
public static String lastDateOfYear_String(Integer year,String format){
if(format==null||format.equals("")){
Calendar calendar= Calendar.getInstance();
calendar.set(calendar.get(Calendar.YEAR)+1, 0, 1, 0, 0, 0);
calendar.set(year+1, 0, 1, 0, 0, 0);
calendar.set(Calendar.MILLISECOND, 0);
SimpleDateFormat sdf= new SimpleDateFormat(format);
return sdf.format(new Date(calendar.getTime().getTime()-1));
public static int countDay(Date from,Date to){
Long length= to.getTime()- from.getTime();
int dayCount=(int)(length/60/60/1000/24);
public static int maxDateOfMonth(Date date){
Calendar calendar=Calendar.getInstance();
int maxDateOfMonth=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数
public static int weekOfYear(Date date){
Calendar cal=Calendar.getInstance();
int weekno=cal.get(Calendar.WEEK_OF_YEAR);
public static Date weekOfFirstDate(int year,int weekno){
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.WEEK_OF_YEAR, weekno);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
*计算一个日期加上或减去一定天数后的日期,
*加一定的天数时传入的days是一个正数,
*减去一定的天数时传入的days是一个负数。
public static Date dateAddOrSubDays(Date date, int days){
Calendar cal=Calendar.getInstance();
cal.add(Calendar.DATE, days);
*计算一个日期加上或减去一定月数后的日期,
*加一定的月数时传入的months是一个正数,
*减去一定的月数时传入的months是一个负数。
public static Date dateAddOrSubMonths(Date date, int months){
Calendar cal=Calendar.getInstance();
cal.add(Calendar.MONTH, months);
public static int countAge(Date birthday,int year){
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, year);
if(cal.getTime().getTime()>birthday.getTime()){
return coutYear(birthday,cal.getTime());
public static int getYearFromDate(Date date){
Calendar cal=Calendar.getInstance();
return cal.get(Calendar.YEAR);
public static int getMonthFromDate(Date date){
Calendar cal=Calendar.getInstance();
return cal.get(Calendar.MONTH)+1;
public static int getDateFromDate(Date date){
Calendar cal=Calendar.getInstance();
return cal.get(Calendar.DATE);
public static void main(String[] args){
Calendar cal=Calendar.getInstance();
System.out.println(dateAddOrSubMonths(date, 1000));
System.out.println(firstDateOfYear_Date(2009));
System.out.println(new Date(firstDateOfYear_Date(2009).getTime()-1));
System.out.println(lastDateOfYear_String(2009,null));
二、java读取excel时间格式出现数字怎么处理
1、在Excel中的日期格式,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171。如果使用POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理。
2、正确的处理方法是先判断单元格的类型是否则NUMERIC类型,然后再判断单元格是否为日期格式,如果是的话,创建一个日期格式,再将单元格的内容以这个日期格式显示出来。如果单元格不是日期格式,那么则直接得到NUMERIC的值就行了。
3、主要是判断NUMERIC的时候同事判断下单元格是不是日期格式如果是日期格式直接转成日期格式字符串返回值就ok了。
4、if(0==cell.getCellType()){//判断是否为日期类型 if(HSSFDateUtil.isCellDateFormatted(cell)){//用于转化为日期格式Dated=cell.getDateCellValue(); DateFormatformater=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); str[k]=formater.format(d);}else{//用于格式化数字,只保留数字的整数部分 DecimalFormatdf=newDecimalFormat("########"); str[k]=df.format(cell.getNumericCellValue());}
三、java如何读取整个excel文件的内容
1、本例使用java来读取excel的内容并展出出结果,代码如下:
2、import java.io.BufferedInputStream;
3、import java.io.FileInputStream;
4、import java.io.FileNotFoundException;
5、import java.text.DecimalFormat;
6、import java.text.SimpleDateFormat;
7、import org.apache.poi.hssf.usermodel.HSSFCell;
8、import org.apache.poi.hssf.usermodel.HSSFDateUtil;
9、import org.apache.poi.hssf.usermodel.HSSFRow;
10、import org.apache.poi.hssf.usermodel.HSSFSheet;
11、import org.apache.poi.hssf.usermodel.HSSFWorkbook;
12、import org.apache.poi.poifs.filesystem.POIFSFileSystem;
13、 public static void main(String[] args) throws Exception{
14、 File file= new File("ExcelDemo.xls");
15、 String[][] result= getData(file, 1);
16、 int rowLength= result.length;
17、 for(int i=0;i<rowLength;i++){
18、 for(int j=0;j<result[i].length;j++){
19、 System.out.print(result[i][j]+"\t\t");
20、*读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行
21、*@param ignoreRows读取数据忽略的行数,比喻行头不需要读入忽略的行数为1
22、*@return读出的Excel中数据的内容
23、*@throws FileNotFoundException
24、 public static String[][] getData(File file, int ignoreRows)
25、 throws FileNotFoundException, IOException{
26、 List<String[]> result= new ArrayList<String[]>();
27、 BufferedInputStream in= new BufferedInputStream(new FileInputStream(
28、 POIFSFileSystem fs= new POIFSFileSystem(in);
29、 HSSFWorkbook wb= new HSSFWorkbook(fs);
30、 for(int sheetIndex= 0; sheetIndex< wb.getNumberOfSheets(); sheetIndex++){
31、 HSSFSheet st= wb.getSheetAt(sheetIndex);
32、 for(int rowIndex= ignoreRows; rowIndex<= st.getLastRowNum(); rowIndex++){
33、 HSSFRow row= st.getRow(rowIndex);
34、 int tempRowSize= row.getLastCellNum()+ 1;
35、 String[] values= new String[rowSize];
36、 for(short columnIndex= 0; columnIndex<= row.getLastCellNum(); columnIndex++){
37、 cell= row.getCell(columnIndex);
38、//注意:一定要设成这个,否则可能会出现乱码
39、 cell.setEncoding(HSSFCell.ENCODING_UTF_16);
40、 case HSSFCell.CELL_TYPE_STRING:
41、 value= cell.getStringCellValue();
42、 case HSSFCell.CELL_TYPE_NUMERIC:
43、 if(HSSFDateUtil.isCellDateFormatted(cell)){
44、 Date date= cell.getDateCellValue();
45、 value= new SimpleDateFormat("yyyy-MM-dd")
46、 value= new DecimalFormat("0").format(cell
47、 case HSSFCell.CELL_TYPE_FORMULA:
48、//导入时如果为公式生成的数据则无值
49、 if(!cell.getStringCellValue().equals("")){
50、 value= cell.getStringCellValue();
51、 value= cell.getNumericCellValue()+"";
52、 case HSSFCell.CELL_TYPE_BLANK:
53、 case HSSFCell.CELL_TYPE_ERROR:
54、 case HSSFCell.CELL_TYPE_BOOLEAN:
55、 value=(cell.getBooleanCellValue()== true?"Y"
56、 if(columnIndex== 0&& value.trim().equals("")){
57、 values[columnIndex]= rightTrim(value);
58、 String[][] returnArray= new String[result.size()][rowSize];
59、 for(int i= 0; i< returnArray.length; i++){
60、 returnArray[i]=(String[]) result.get(i);
61、 public static String rightTrim(String str){
62、 for(int i= length- 1; i>= 0; i--){
63、 return str.substring(0, length);