java中如何从日期类型中获取月 5

我定义一个字符串,用来接收输入的年月日,之后将字符串类型转换为日期类型,现在我想从这个日期类型中提取出独立的年、月、日,应该用什么函数呢?我是新手,请各位大侠帮忙!把我的... 我定义一个字符串,用来接收输入的年月日,之后将字符串类型转换为日期类型,现在我想从这个日期类型中提取出独立的年、月、日,应该用什么函数呢?我是新手,请各位大侠帮忙!
把我的程序详细描述一下吧,我想计算任意两个日期之间相差的天数,这个功能已经实现,但异常处理不完善。比如说我输入2010-13-33 2010-14-34 ,程序计算出的结果是34天。
而我的想法是获取到输入的月,判断它的值,如果大于12,就抛出一个错误,但我获取到的2010-13-01日期的月份值为1,所以无法判断。
不知道我的这种方法能不能行通,如果有更好的办法那就更好啦!
求助!!!
展开
 我来答
s214205
2010-09-17
知道答主
回答量:14
采纳率:0%
帮助的人:10.3万
展开全部
//将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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
守护翼小宝
2010-09-17 · TA获得超过122个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:165万
展开全部
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/
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虎年遇病猫
2010-09-17 · TA获得超过130个赞
知道答主
回答量:109
采纳率:0%
帮助的人:36.6万
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
from_rr
2010-09-17 · TA获得超过1138个赞
知道小有建树答主
回答量:318
采纳率:0%
帮助的人:322万
展开全部
String stringDate="2010-09-16";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse( stringDate );//得到日期对象
希望对你帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangguoliao
2010-09-17
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
Calendar cal = Calendar.getInstance();
cal.setTime("日期对象");
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式