`

java时间日期函数

    博客分类:
  • java
阅读更多

一:字符串转换成时间及时间相减:

1:) SimpleDateFormat formatter = new SimpleDateFormat ("yyyy.MM.dd");
//假定像2002.07.04的是合法日期其他都非法。
String str="2002.07.04";
ParsePosition pos = new ParsePosition(0);
Date dt=formatter.parse(str,pos);
if(dt!=null)
{
//是合法日期
}
else
{
//非法日期
}

2:)两个日期相减
import java.util.*;
import java.text.*;
class a
{
public static void main(String[] args)
{
String s1 = "2003/08/15 17:15:30";
String s2 = "2002/09/14 14:18:37";
try{
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");

ParsePosition pos = new ParsePosition(0);
ParsePosition pos1 = new ParsePosition(0);
Date dt1=formatter.parse(s1,pos);
Date dt2=formatter.parse(s2,pos1);
System.out.println("dt1="+dt1);
System.out.println("dt2="+dt2);
long l = dt1.getTime() - dt2.getTime();

System.out.println("Hello World!="+l);
}catch(Exception e){
System.out.println("exception"+e.toString());
}

}
}


3:)得到2个月后的日期:
import java.util.*;
import java.text.DateFormat;
public class test2
{
public static void main(String args[]) throws Exception
{
String date="2001/11/30";

DateFormat dateFormat =
DateFormat.getDateInstance(DateFormat.MEDIUM);
GregorianCalendar grc=new GregorianCalendar();
grc.setTime(new Date(date));


grc.add(GregorianCalendar.MONTH,2);
System.out.println("grc="+dateFormat.format(grc.getTime()));
}
}


二:计算日期间隔


public int getDays(Date sd,Date ed){
return (ed.getTime()-sd.getTime())/(3600*24*1000)
}


三: 日期加减


SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
String str="20011230";
Date dt=sdf.parse(str,new ParsePosition(0));
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.DATE,2);//你要加减的日期
Date dt1=rightNow.getTime();
String reStr=sdf.format(dt1);
System.out.println(reStr);


四: 时间显示控制


第一种方式:
<html>
<head><title>取得系统时间</title></head>
<body>
<%java.util.Date date=new java.util.Date();%>
现在是:<%=date%>
</body>
</html>
运行结果:
现在是:Tue Jul 31 10:32:52 CST 2001

第二种方式:
<%@ page import="java.util.*, java.text.*" %>
<HTML>
<HEAD><TITLE>显示当前时间</TITLE></HEAD>
<BODY>
当前时间:
<%
Date now = new Date();
out.println(DateFormat.getTimeInstance().format(now));
%>
</BODY>
</HTML>
运行结果:
10:31:42 AM

第三种方式:
<%
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy年MM月dd日");
java.util.Date currentTime_1 = new java.util.Date();
out.print(formatter.format(currentTime_1));
%>
运行结果:
2001年07月31日

第四种方式:
<%
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy/MM/dd HH/mm/ss");
java.util.Date currentTime_1 = new java.util.Date();
out.print(formatter.format(currentTime_1));
%>
运行结果:
2001/07/31 10/32/52
第三四两种方式其实是一样的他可以产生千变万化的格式。

 

 

/**
* 得到当前日期前后多少天的日期的日期

* param   day 某一天 可为负数
* @return 返回日期字符串
*/
public static final String getBefDateString(int day_i){
Date date=new Date(System.currentTimeMillis()-day_i*24*60*60*1000);
SimpleDateFormat formattxt=new SimpleDateFormat("yyyy-MM-dd");
return formattxt.format(date);
}

/**
* 得到当前日期前后多少天的日期的日期  -函数功能和上边的一样。
* @return 返回日期字符串
*/
public static final String getBefDateString(int day_i){
Calendar day=Calendar.getInstance();
day.add(Calendar.DATE,day_i);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(day.getTime());
}

 

 

 

 

 

 

 


csbin 发表于:2006.03.04 16:58 ::分类: ( JAVA ) ::阅读:(158次) :: 评论 (1) :: 引用 (0)
dorado中的一段时间日期操作代码 [回复]

import java.util.*;
import java.text.*;

public void saveTrainSCH(ParameterSet parameters)
throws Exception {

Dataset dataset = getDataset("datasetTrainSCHSingle");
RecordIterator ri = dataset.recordIterator();
Date date, leaveDate, arriveDate;
String strDate, strTime;
// 定义日期格式
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
while (ri.hasNext()) {
Record record = ri.nextRecord();
// 获得执行日期
date = record.getDate("SCHEDULE_DATE");
strDate = formatDate.format(date);
// 获得开始时间
strTime = record.getString("LEAVE_TIME");
System.out.println("*******************************************************************date"+strTime);
// 合并时间
strTime = strDate + " " + strTime;
System.out.println("*******************************************************************time"+strTime);
// 格式化合并时间
ParsePosition pos = new ParsePosition(0);
leaveDate = formatter.parse(strTime,pos);
record.setDate("LEAVE_PLANNED",leaveDate);
// 计算到达时间
int cycle = record.getInt("CYCLE");
GregorianCalendar grc=new GregorianCalendar();
grc.setTime(leaveDate);
grc.add(GregorianCalendar.MINUTE, cycle);
arriveDate = grc.getTime();
record.setDate("ARRIVE_PLANNED",arriveDate);

}
super.doUpdate(parameters);
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics