date 操作

本文介绍Java中日期时间的处理技巧,包括格式化、字符串转换、日期间隔计算、加减运算、日期比较等实用方法,并展示了如何记录操作耗时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<%@ 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  
  
  
======================  
  
日期比较:  
  
在JAVA中日期的计算与比较可以使用Date和DateFormat来解决,下面是一段示例代码:  
  
import java.text.*;  
import java.util.*;  
  
public class Test{  
  
 public static void main(String[] args){  
  try{  
   Date date=new Date();  
   DateFormat df=DateFormat.getDateTimeInstance();  
   String now=df.format(date);   
   System.out.println("现在时间:"+now);  
  
   System.out.println("现在时间是否在16:00之前:"+date.before(df.parse("2004-12-24 16:00:00")));   
  }  
  catch(ParseException e){System.out.print(e.getMessage());  
  }  
 }  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值