关于日期 Date Calendar


import java.security.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;

public class Date {

public static int getIntervalDays(Calendar startday,Calendar endday){

//确保startday在endday之前
if(startday.before(endday)){ //判断
Calendar cal=startday;
startday=endday;
endday=cal;
}
//分别得到两个时间的毫秒数
long sl=startday.getTimeInMillis();
long el=endday.getTimeInMillis();
long ei=el-sl;
//根据毫秒数计算间隔天数
return (int)(ei/(1000*60*60*24));
}

//提高计算时间的精度
public int getDaysBetween (Calendar d1, Calendar d2){
if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
int y2 = d2.get(Calendar.YEAR);
if (d1.get(Calendar.YEAR) != y2) {
d1 = (Calendar) d1.clone();
do {
days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到当年的实际天数
d1.add(Calendar.YEAR, 1);
} while (d1.get(Calendar.YEAR) != y2);
}
return days;
}
public static String getSystemTime(){ //好方法
java.util.Date date21=new java.util.Date(); //一定要因对包
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("***"+df.format(date21));
return df.format(date21.getTime());
}

//明天日期
public static void getTomorrow(){ //很好的方法
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss G E D F w W a E F");
java.util.Date myDate=new java.util.Date();
long myTime=(myDate.getTime()/1000)+60*60*24;
myDate.setTime(myTime*1000);
String mDate=formatter.format(myDate);
System.out.println(mDate);
}

//将字符串类型的日期转换为一个Date
public final static java.sql.Date string2Date(String dateString)throws java.lang.Exception {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型
return dateTime;
}
public final static java.sql.Timestamp string2Time(String dateString)throws java.text.ParseException {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//设定格式
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
return dateTime;
}



public static void main(String args[]) throws Exception{

Date d = new Date();
System.out.println(d);
//System.out.println(String.format("%tr", new Date()));

//***************************************************
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime()); //获得当前时间

Calendar calendar1 = Calendar.getInstance();
java.util.Date date = calendar1.getTime();
System.out.println(date);

//***********************************************
Date date2=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
System.out.println(calendar.getTime());
//****************************************************
java.util.Date date3=new java.util.Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("***"+df.format(date3));
//******************************************************
Calendar cal3=Calendar.getInstance();
cal3.set(Calendar.YEAR, 2006);
cal3.set(Calendar.MONTH, 8);
cal3.set(Calendar.DAY_OF_MONTH, 3);
int weekno=cal3.get(Calendar.WEEK_OF_YEAR);
System.out.println(cal3.getTime());

//或者 cal.set(2004,1,6,5,40); 表示为2004年1月6号 5点40分

//********************************************************
SimpleDateFormat df4=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal4=Calendar.getInstance();
cal4.set(Calendar.YEAR, 2006);
cal4.set(Calendar.WEEK_OF_YEAR, 1);
cal4.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(df.format(cal4.getTime()));
//**************************************************
SimpleDateFormat df5=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal5=Calendar.getInstance();
cal5.set(Calendar.YEAR, 2006);
cal5.set(Calendar.MONTH, 8);
cal5.set(Calendar.DAY_OF_MONTH, 3);
cal5.add(Calendar.DATE, -4);
java.util.Date date5=cal5.getTime(), date6;
System.out.println(df5.format(date5));
cal5.add(Calendar.DATE, 4);
date6=cal5.getTime();
System.out.println(df5.format(date6));
// 2006-08-30
// 2006-09-03
//*****************************************************
System.out.println(getIntervalDays(cal4,cal5)); //计算出 两个日期之间的天数

//***********************************************************
System.out.println(getSystemTime());
getTomorrow();


//字符串 ——》 时间的转变
String sToDate = "2005-8-18";//用于转换成java.sql.Date的字符串
String sToTimestamp = "2005-8-18 14:21:12.123";//用于转换成java.sql.Timestamp的字符串
java.util.Date date1 = string2Date(sToDate); //
System.out.println(date1);
java.sql.Timestamp date22 = string2Time(sToTimestamp); //
System.out.println(date22);
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值