时间问题

 日期问题  

                   Date   date   =   new   Date();  
                  SimpleDateFormat   df   =   new   SimpleDateFormat("yyyy-MM-dd   HH:ss");
  1、获取服务器端当前日期:  
  <%@   page   import="java.util.Date"%><% Date   myDate   =   new   Date();%>  
   
  2、获取当前年、月、日:  
  <%@   page   import="java.util.Date"%><% Date   myDate   =   new   Date(); int   thisYear   =   myDate.getYear()   +   1900;//thisYear   =   2003 int   thisMonth   =   myDate.getMonth()   +   1;//thisMonth   =   5 int   thisDate   =   myDate.getDate();//thisDate   =   30%>  
   
  3、按本地时区输出当前日期  
  <%@   page   import="java.util.Date"%><% Date   myDate   =   new   Date(); out.println(myDate.toLocaleString());%>  
   
  输出结果为:  
  2003-5-30    
  4、获取数据库中字段名为”publish_time“、类型为Datetime的值  
  <%@   page   import="java.util.Date"%><% ...连接数据库... ResultSet   rs   =   ... Date   sDate   =   rs.getDate("publish_time");%>[code]5、按照指定格式打印日期[code]<%@   page   import="java.util.Date"%><%@   page   import="java.text.DateFormat"%><% Date   dNow   =   new   Date(); SimpleDateFormat   formatter   =   new   SimpleDateFormat("E   yyyy.MM.dd   'at'   hh:mm:ss   a   zzz"); out.println("It   is   "   +   formatter.format(dNow));%>  
   
  输出的结果为:  
  It   is   星期五   2003.05.30   at   11:30:46   上午   CST    
  (更为详尽的格式符号请参看SimpleDateFormat类)  
  6、将字符串转换为日期  
  <%@   page   import="java.util.Date"%><%@   page   import="java.text.DateFormat"%><% String   input   =   "1222-11-11"; SimpleDateFormat   formatter   =   new   SimpleDateFormat("yyyy-MM-dd"); Date   t   =   null; try{ t   =   formatter.parse(input); out.println(t); }catch(ParseException   e){ out.println("unparseable   using   "   +   formatter); }%>  
   
  输出结果为:  
  Fri   Nov   11   00:00:00   CST   1222    
  7、计算日期之间的间隔  
  <%@   page   import="java.util.Date"%><%@   page   import="java.text.DateFormat"%><% String   input   =   "2003-05-01"; SimpleDateFormat   formatter   =   new   SimpleDateFormat("yyyy-MM-dd"); Date   d1   =   null; try{ d1   =   formatter.parse(input); }catch(ParseException   e){ out.println("unparseable   using   "   +   formatter); } Date   d2   =   new   Date(); long   diff   =   d2.getTime()   -   d1.getTime(); out.println("Difference   is   "   +   (diff/(1000*60*60*24))   +   "   days.");%>  
   
  输出结果为:  
  Difference   is   29   days.    
  8、日期的加减运算  
  方法:用Calendar类的add()方法  
  <%@   page   import="java.util.*"%><%@   page   import="java.text.*"%><% Calendar   now   =   Calendar.getInstance(); SimpleDateFormat   formatter   =   new   SimpleDateFormat("E   yyyy.MM.dd   'at'   hh:mm:ss   a   zzz"); out.println("It   is   now   "   +   formatter.format(now.getTime())); now.add(Calendar.DAY_OF_YEAR,-(365*2)); out.println("<br>"); out.println("Two   years   ago   was   "   +   formatter.format(now.getTime()));%>  
   
  输出结果为:  
  It   is   now   星期五   2003.05.30   at   01:45:32   下午   CST    
  Two   years   ago   was   星期三   2001.05.30   at   01:45:32   下午   CST    
  9、比较日期  
  方法:用equals()、before()、after()方法  
  <%@   page   import="java.util.*"%><%@   page   import="java.text.*"%><% DateFormat   df   =   new   SimpleDateFormat("yyy-MM-dd"); Date   d1   =   df.parse("2000-01-01"); Date   d2   =   df.parse("1999-12-31"); String   relation   =   null; if(d1.equals(d2)) relation   =   "the   same   date   as"; else   if(d1.before(d2)) relation   =   "before"; else relation   =   "after"; out.println(d1   +"   is   "   +   relation   +   '   '   +   d2);%>  
   
  输出结果为:  
  Sat   Jan   01   00:00:00   CST   2000   is   after   Fri   Dec   31   00:00:00   CST   1999    
  10、记录一件事所花费的时间  
  方法:调用两次System.getTimeMillis()方法,求差值  
  <%@   page   import="java.text.*"%><% long   t0,t1; t0   =   System.currentTimeMillis(); out.println("Cyc   starts   at   "   +   t0); int   k   =   0; for(int   i   =0;i<100000;i++){ k   +=   i; } t1   =   System.currentTimeMillis(); out.println("<br>"); out.println("Cyc   ends   at   "   +   t1); out.println("<br>"); out.println("This   run   took   "   +   (t1-t0)   +   "ms.");%>  
   
  输出结果为:  
  Cyc   starts   at   1054275312432    
  Cyc   ends   at   1054275312442    
  This   run   took   10ms.    
   
  其它:如何格式化小数  
  <%@   page   import="java.text.*"%><% DecimalFormat   df   =   new   DecimalFormat(",###.00"); double   aNumber   =   33665448856.6568975; String   result   =   df.format(aNumber); out.println(result);%>  
   
  输出结果为:  
  33,665,448,856.66  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Elasticsearch的Mapper映射实体类时,时间问题涉及到对日期和时间数据类型的处理。在Elasticsearch中,日期和时间可以使用多种格式进行存储和检索。 首先,我们需要在实体类的属性上使用合适的注解来标识该属性是一个日期或时间。对于日期类型,可以使用`@Field`注解,并指定字段类型为`FieldType.Date`,这样可以将日期通过指定的格式进行存储和检索。对于时间类型,可以使用`@Field`注解,并指定字段类型为`FieldType.Text`,同时也可以使用`format`属性来指定时间的格式。 在映射的过程中,我们可以选择使用Elasticsearch提供的默认日期时间格式,如`"yyyy-MM-dd HH:mm:ss"`,也可以根据自己的需求定义对应的格式。需要注意的是,由于日期和时间的校验和转换可能会带来性能上的影响,所以在选择日期时间格式时需要权衡性能和需求。 当对日期和时间进行检索时,可以使用相应的格式将输入的日期时间字符串转换为Elasticsearch所支持的格式,并进行检索。一般情况下,Elasticsearch会将日期和时间类型进行忽略,只比较其毫秒级的数值,所以在检索时需要将输入的日期和时间精确到毫秒级。 总之,ES Mapper映射实体类时间问题涉及到对日期和时间的存储、检索和格式转换。通过合适的注解和格式设置,我们可以方便地处理实体类中的日期和时间属性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值