java中如何从日期类型中获取月 5
我定义一个字符串,用来接收输入的年月日,之后将字符串类型转换为日期类型,现在我想从这个日期类型中提取出独立的年、月、日,应该用什么函数呢?我是新手,请各位大侠帮忙!把我的...
我定义一个字符串,用来接收输入的年月日,之后将字符串类型转换为日期类型,现在我想从这个日期类型中提取出独立的年、月、日,应该用什么函数呢?我是新手,请各位大侠帮忙!
把我的程序详细描述一下吧,我想计算任意两个日期之间相差的天数,这个功能已经实现,但异常处理不完善。比如说我输入2010-13-33 2010-14-34 ,程序计算出的结果是34天。
而我的想法是获取到输入的月,判断它的值,如果大于12,就抛出一个错误,但我获取到的2010-13-01日期的月份值为1,所以无法判断。
不知道我的这种方法能不能行通,如果有更好的办法那就更好啦!
求助!!! 展开
把我的程序详细描述一下吧,我想计算任意两个日期之间相差的天数,这个功能已经实现,但异常处理不完善。比如说我输入2010-13-33 2010-14-34 ,程序计算出的结果是34天。
而我的想法是获取到输入的月,判断它的值,如果大于12,就抛出一个错误,但我获取到的2010-13-01日期的月份值为1,所以无法判断。
不知道我的这种方法能不能行通,如果有更好的办法那就更好啦!
求助!!! 展开
8个回答
展开全部
//将yyyyMMdd转为date
public static Date getCoreToEmsDateStr(String dateStr){
DateFormat format = new SimpleDateFormat("yyyyMMdd");
Date d = null;
try{
d = format.parse(dateStr);
}catch(ParseException e){
e.printStackTrace();
}
return d;
}
public static String getDateAfterDays(Timestamp s,int days){
Timestamp currTimestamp = s;
for (int i=0;i<days;i++){
currTimestamp = getNextDate(currTimestamp);
}
return getDateTimeStr(currTimestamp,"3");
}
public static Timestamp getNextDate(java.sql.Timestamp tsDate){
if(tsDate==null)
return null;
java.util.Calendar calendar = Calendar.getInstance();
calendar.setTime(tsDate);
return getDateTime(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH)+1,calendar.get(Calendar.DATE)+1,
calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));
}
public static java.sql.Timestamp getDateTime(int year,int month,int day,int hour,int minute,int second){
java.sql.Timestamp ts = null;
java.util.Date dt = null;
java.util.Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(year,month-1,day,hour,minute,second);
dt = calendar.getTime();
ts = new java.sql.Timestamp(dt.getTime());
return ts;
}
/**
* 比较两个时间是否相同
* @param tsBeginDate
* @param tsEndDate
* @param bool
* @return
*/
public static long getDateInterval(Timestamp tsBeginDate,Timestamp tsEndDate,boolean bool){
long lDays = 0;
if(bool){
tsBeginDate = Common.getDateTime(Common.getDateString(tsBeginDate),bool);
}
if(tsBeginDate!=null&&tsEndDate!=null){
Log4j.info("tsEndDate.getTime ()===="+tsEndDate);
Log4j.info("tsBeginDate.getTime ()===="+tsBeginDate);
lDays = (tsEndDate.getTime()-tsBeginDate.getTime())/86400000+1;
Log4j.info("lDays===="+lDays);
}
return lDays;
}
/**
* 格式化成Timestamp类型
* @param sDt
* @param bool
* @return
*/
public static java.sql.Timestamp getDateTime(String sDt,boolean bool){
try{
return java.sql.Timestamp.valueOf(sDt); //sDt format:yyyy-mm-dd hh:mm:ss.fffffffff
}catch(IllegalArgumentException iae){
if(bool)
sDt = sDt+" 23:59:59.0";
else
sDt = sDt+" 00:00:00.0";
return java.sql.Timestamp.valueOf(sDt);
}
}
/**
* 根据时间获取日期字符串
* @param ts
* @return
*/
public static String getDateString(Timestamp ts){
if(ts==null)
return "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(ts);
String strMonth = String.valueOf(calendar.get(Calendar.MONTH)+1);
if(strMonth.length()==1){
strMonth = "0"+strMonth;
}
String strDay = String.valueOf(calendar.get(Calendar.DATE));
if(strDay.length()==1){
strDay = "0"+strDay;
}
return calendar.get(Calendar.YEAR)+"-"+strMonth+"-"+strDay;
}
public static Date getCoreToEmsDateStr(String dateStr){
DateFormat format = new SimpleDateFormat("yyyyMMdd");
Date d = null;
try{
d = format.parse(dateStr);
}catch(ParseException e){
e.printStackTrace();
}
return d;
}
public static String getDateAfterDays(Timestamp s,int days){
Timestamp currTimestamp = s;
for (int i=0;i<days;i++){
currTimestamp = getNextDate(currTimestamp);
}
return getDateTimeStr(currTimestamp,"3");
}
public static Timestamp getNextDate(java.sql.Timestamp tsDate){
if(tsDate==null)
return null;
java.util.Calendar calendar = Calendar.getInstance();
calendar.setTime(tsDate);
return getDateTime(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH)+1,calendar.get(Calendar.DATE)+1,
calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));
}
public static java.sql.Timestamp getDateTime(int year,int month,int day,int hour,int minute,int second){
java.sql.Timestamp ts = null;
java.util.Date dt = null;
java.util.Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(year,month-1,day,hour,minute,second);
dt = calendar.getTime();
ts = new java.sql.Timestamp(dt.getTime());
return ts;
}
/**
* 比较两个时间是否相同
* @param tsBeginDate
* @param tsEndDate
* @param bool
* @return
*/
public static long getDateInterval(Timestamp tsBeginDate,Timestamp tsEndDate,boolean bool){
long lDays = 0;
if(bool){
tsBeginDate = Common.getDateTime(Common.getDateString(tsBeginDate),bool);
}
if(tsBeginDate!=null&&tsEndDate!=null){
Log4j.info("tsEndDate.getTime ()===="+tsEndDate);
Log4j.info("tsBeginDate.getTime ()===="+tsBeginDate);
lDays = (tsEndDate.getTime()-tsBeginDate.getTime())/86400000+1;
Log4j.info("lDays===="+lDays);
}
return lDays;
}
/**
* 格式化成Timestamp类型
* @param sDt
* @param bool
* @return
*/
public static java.sql.Timestamp getDateTime(String sDt,boolean bool){
try{
return java.sql.Timestamp.valueOf(sDt); //sDt format:yyyy-mm-dd hh:mm:ss.fffffffff
}catch(IllegalArgumentException iae){
if(bool)
sDt = sDt+" 23:59:59.0";
else
sDt = sDt+" 00:00:00.0";
return java.sql.Timestamp.valueOf(sDt);
}
}
/**
* 根据时间获取日期字符串
* @param ts
* @return
*/
public static String getDateString(Timestamp ts){
if(ts==null)
return "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(ts);
String strMonth = String.valueOf(calendar.get(Calendar.MONTH)+1);
if(strMonth.length()==1){
strMonth = "0"+strMonth;
}
String strDay = String.valueOf(calendar.get(Calendar.DATE));
if(strDay.length()==1){
strDay = "0"+strDay;
}
return calendar.get(Calendar.YEAR)+"-"+strMonth+"-"+strDay;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Calendar ca = Calendar.getInstance();
int year = ca.get(Calendar.YEAR);//获取年份
int month=ca.get(Calendar.MONTH);//获取月份
int day=ca.get(Calendar.DATE);//获取日
int minute=ca.get(Calendar.MINUTE);//分
int hour=ca.get(Calendar.HOUR);//小时
int second=ca.get(Calendar.SECOND);//秒
更多请详见:http://pengdongwen0068.blog.163.com/blog/static/295079222009112551026805/
int year = ca.get(Calendar.YEAR);//获取年份
int month=ca.get(Calendar.MONTH);//获取月份
int day=ca.get(Calendar.DATE);//获取日
int minute=ca.get(Calendar.MINUTE);//分
int hour=ca.get(Calendar.HOUR);//小时
int second=ca.get(Calendar.SECOND);//秒
更多请详见:http://pengdongwen0068.blog.163.com/blog/static/295079222009112551026805/
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Date now = new Date();
now.getYear();
now.getMonth();
now.getDay();
或者是从你开始的字符串里面取
如果形式是YYYYMMDD的格式
String aa = "YYYYMMDD";
String a = aa.substring(0, 4);
String b = aa.substring(4, 6);
String c = aa.substring(6, 8);
now.getYear();
now.getMonth();
now.getDay();
或者是从你开始的字符串里面取
如果形式是YYYYMMDD的格式
String aa = "YYYYMMDD";
String a = aa.substring(0, 4);
String b = aa.substring(4, 6);
String c = aa.substring(6, 8);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String stringDate="2010-09-16";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse( stringDate );//得到日期对象
希望对你帮助
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse( stringDate );//得到日期对象
希望对你帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Calendar cal = Calendar.getInstance();
cal.setTime("日期对象");
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
cal.setTime("日期对象");
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询