日期 java

[color=indigo][size=large][b]字符串--->日期[/b][/size]
[b]方法一:[/b]
[url]http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html[/url]

java.lang.Object
|
+----java.util.Calendar(Calendar is an abstract base class for converting
| between a Date object and a set of integer fields
| such as YEAR,MONTH, DAY, HOUR, and so on.)
|
+----java.util.GregorianCalendar (Subclasses of Calendar interpret a
Date according to the rules of a
specific calendar system. The
platform provides one concrete
subclass of Calendar:
GregorianCalendar.)

GregorianCalendar 的一个构造函数
public GregorianCalendar(int year,int month,int date)
在缺省时区的缺省语言环境下用给出的日期设置构造一个 GregorianCalendar 。
参数:
year - 用于设置日历中的 YEAR 时间域的值。
month - 用于设置日历中的 MONTH 时间域的值。 Month 值是基于零的。
例如,0 代表 January。
date - 用于设置日历中的 DATE 时间域的值。


eg:
String date = "2008-01-31";
int year = Integer.parseInt(date.substring(0, 4));
int month = Integer.parseInt(date.substring(5, 7))-1;
int day = Integer.parseInt(date.substring(8, 10));

GregorianCalendar sdate = new GregorianCalendar(year,month,day);
Calendar calendar = Calendar.getInstance();
calendar.setTime(sdate.getTime());

System.out.print(calendar.get(calendar.YEAR) + "-");
System.out.print((calendar.get(calendar.MONTH) + 1) + "-");
System.out.println(calendar.get(calendar.DATE));

[url]http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html[/url]

java.lang.Object
|
——java.text.Format
|
——java.text.DateFormat
|
——java.text.SimpleDateFormat

DateFormat is an abstract class for date/time formatting subclasses
which formats and parses dates or time in a language-independent manner.
The date/time formatting subclass, such as SimpleDateFormat, allows
for formatting (i.e., date -> text), parsing (text -> date), and normalization.

[b]方法二:[/b]

String date = "2008-01-31";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date adate = sdf.parse(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(adate);
System.out.print(calendar.get(calendar.YEAR) + "-");
System.out.print((calendar.get(calendar.MONTH) + 1) + "-");
System.out.println(calendar.get(calendar.DATE));

[size=large][b]日期--->字符串[/b][/size]

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String dateFormat = sdf.format(date);
System.out.println(dateFormat);

[size=large][b]DateFormat的小应用[/b][/size]

GregorianCalendar cal = new GregorianCalendar();
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
DateFormat dateFormat1 = DateFormat.getDateInstance(DateFormat.SHORT);
DateFormat dateFormat2 = DateFormat.getDateInstance(DateFormat.LONG);
DateFormat dateFormat3 = DateFormat.getDateInstance(DateFormat.DEFAULT);
DateFormat dateFormat4 = DateFormat.getDateInstance(DateFormat.MEDIUM);
DateFormat dateFormat5 = DateFormat.getDateInstance(DateFormat.DATE_FIELD);

System.out.println("System Date: " + dateFormat.format(cal.getTime()));
System.out.println("System Date1: " + dateFormat1.format(cal.getTime()));
System.out.println("System Date2: " + dateFormat2.format(cal.getTime()));
System.out.println("System Date3: " + dateFormat3.format(cal.getTime()));
System.out.println("System Date4: " + dateFormat4.format(cal.getTime()));
System.out.println("System Date5: " + dateFormat4.format(cal.getTime()));

结果:
System Date: 2008年8月13日 星期三
System Date1: 08-8-13
System Date2: 2008年8月13日
System Date3: 2008-8-13
System Date4: 2008-8-13
System Date5: 2008-8-13

String date = "2008-1-31";
DateFormat df = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.CHINA);
Date myDate = df.parse(date);
System.out.println(df.format(myDate));


String date = "2008年8月13日";
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);
Date myDate = df.parse(date);
System.out.println(df.format(myDate));

[size=large][b]明天的日期[/b][/size]

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+ 1);
System.out.print(calendar.get(calendar.YEAR) + "-");
System.out.print((calendar.get(calendar.MONTH) + 1) + "-");
System.out.println(calendar.get(calendar.DATE));

[/color]


[b]比较两个日期相差天数[/b]
[url]http://zhidao.baidu.com/question/14990696[/url]

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

class Test2 {
public static String getDate(){
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");
Date dd = new Date();
return ft.format(dd);
}
public static long getQuot(String time1, String time2){
long quot = 0;
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");
try {
Date date1 = ft.parse( time1 );
Date date2 = ft.parse( time2 );
quot = date1.getTime() - date2.getTime();
quot = quot / 1000 / 60 / 60 / 24;
} catch (ParseException e) {
e.printStackTrace();
}
return quot;
}
public static void main(String[] args) throws Exception {
String date1 = "2008/8/8";
String date2 = getDate();
long day = getQuot(date1,date2);
System.out.println( "距离 "+date1+" 还有 "+day+" 天" );
}
}

你看一下这段代码,是从今天到2008/8/8的天数。
Date的getTime()方法返回自1970年1月1日午夜(通用时间)以来的毫秒数。
用2008/8/8的getTime()减去今天的getTime()就是这两天相差的毫秒数,1秒=1000毫秒,1分钟=60秒,1小时=60分钟,1天=24小时,然后除除除就得到天数了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值