`
qinya06
  • 浏览: 584574 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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, "起始与结束日期相同,起始时间必须小于结束时间!");
   }
    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics