论坛首页 入门技术论坛

日期 java

浏览 1732 次
锁定老帖子 主题:日期 java
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-08-13   最后修改:2010-06-18
[color=indigo]字符串--->日期
方法一:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
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));

http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
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.

方法二:
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));

日期--->字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String dateFormat = sdf.format(date);
System.out.println(dateFormat);

DateFormat的小应用
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));

明天的日期
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]


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

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小时,然后除除除就得到天数了。
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics