Java字符串转换为日期和时间比较

DATETIME类型用在你需要同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'

DATE类型用在你仅需要日期值时,没有时间部分。MySQL检索并且以'YYYY-MM-DD'格式显示DATE值,支持的范围是'1000-01-01'到'9999-12-31'。
用NOW()初始化的DATETIME列。

TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。
'YYYYMMDDHHMMSS'或'YYMMDDHHMMSS'格式的没有任何分隔符的一个字符串,例如,'19970523091528'和'970523091528'被解释为'1997-05-23 09:15:28',但是'971122459015'是不合法的(它有毫无意义的分钟部分)且变成'0000-00-00 00:00:00'。
YYYYMMDDHHMMSS或YYMMDDHHMMSS格式的一个数字,如果数字认为是一个日期。例如,19830905132800和830905132800被解释作为'1983-09-05 13:28:00'。

YYYYMMDD或YYMMDD格式的一个数字,如果数字认为是一个日期。例如,19830905和830905被解释作为'1983-09-05'。

一个返回值可以在一个DATETIME, DATE或TIMESTAMP上下文环境中接受的函数,例如
NOW()或CURRENT_DATE。
指定为数字应该是6、8、12或14位长。如果数字是8或14位长,它被假定以YYYYMMDD或YYYYMMDDHHMMSS格式并且年份由头4位数字给出。如果数字是6或12位长,它被假定是以YYMMDD或YYMMDDHHMMSS格式且年份由头2位数字给出。不是这些长度之一的数字通过填补前头的零到最接近的长度来解释。
TIMESTAMP列使用被指定的值的完整精度的存储合法的值,不考虑显示大小。这有几个含意:

  总是指定年,月,和日,即使你的列类型是TIMESTAMP(4)或TIMESTAMP(2)。否则,值将不是一个合法的日期并且0将被存储。


JAVA 字符串与日期类型与整型相互转换
SimpleDateFormat dd=new SimpleDateFormat("yyyy-MM-dd");
String d=dd.format(new Date()); //Date->String
Date date=dd.parse("2007-12-12"); //String->Date
SimpleDateFormat ddd=new SimpleDateFormat("yyyyMMdd");
int ddd=20071212;
Date date=dd.parse(ddd+""); //int->Date


DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");

String dateBegin=fmt.format(command.getDateBegin());
String dateEnd=fmt.format(command.getDateEnd());

//如果获得的日期格式不是'20010-03-13',就必须要格式化一下日期
String dateBegin = request.getParameter("dateBegin");
String dateEnd = request.getParameter("dateEnd");
if(java.sql.Date.valueOf(dateBegin).after(java.sql.Date.valueOf(dateEnd))){
//起始日期大于结束日期
errors.rejectValue("dateEnd", null, "起始日期必须小于结束日期!");
}


StringBuffer timeBegin = new StringBuffer();
StringBuffer timeEnd = new StringBuffer();
timeBegin.append(request.getParameter("timeBegin"));
timeEnd.append(request.getParameter("timeEnd"));
timeBegin.append(":00");
timeEnd.append(":00");
if(java.sql.Date.valueOf(dateBegin).equals(java.sql.Date.valueOf(dateEnd)))
{ //起始日期等于结束日期
if(java.sql.Time.valueOf(timeBegin.toString()).equals(java.sql.Time.valueOf(timeEnd.toString())))
{
errors.rejectValue("timeEnd", null, "起始与结束日期相同,起始时间必须小于结束时间!");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值