关于JAVA的Date()类的问题(100分)

  • 主题发起人 主题发起人 GBlueMan
  • 开始时间 开始时间
G

GBlueMan

Unregistered / Unconfirmed
GUEST, unregistred user!
本人用JBuilder6编一程序,其中要用到Date()类,但每次编译编译器都有警告:大概意思
是该类已经不推荐使用,请问如果在JAVA中Date()类不推荐使用那么用什么类呢?我想应
该有一个更好的类代替它才会说不推荐使用它吧!
另外:
如果把这样的日期:“Mar 8, 2000 9:28:49 PM”转换成我们中国人熟悉的
"yyyy-MM-dd HH:mm:ss"该如何转,用getYear,getMonth这些方法已经不推荐了。
我需要没有警告的。
 
将“Mar 8, 2000 9:28:49 PM”转换成我们中国人熟悉的 "yyyy-MM-dd HH:mm:ss",使用 Data 对象的确toLocaleString 方法可以实现。
ok?
 
用Calender类,它是Date()的子类。不过用Date()也没关系啊,别管它的警告。
//Calender类,是一个抽象类,包含在"java.util.*"。定义了一些有关日期时间的数据域位。
//当我们以"Calender"类中的"getInstance()"方法初始化声明的对象时,此对象各字段的值会依附时区(TimeZone)和地区(Locale)而作设定,再往下就可以理由各种方法了。
//时间日期域
YEAR // 2001
MONTH // 0~11
DATE // 表示第几日,1~31
HOUR // 0~11
MINUTE // 0~59
SECOND // 0~59
DAY_OF_YEAR // 表示一年中的第几天,1~366
DAY_OF_MONTH // 1~31
DAY_OF_WEEK // 1~7
WEEK_OF_YEAR // 0~54
WEEK_OF_MONTH // 0~6
//常用方法
Calender() // 建立一个时区和地区为默认值的Calender对象
Calender(TimeZone zone, Locale locale) // 建立一个时区为zone,地区为local的Calender
void add(int field, int value) // 设定field字段的值为目前的值加上value
boolean after(Object obj) // 表示时间是否在obj之后
boolean before(Object obj) //
boolean equals(Object obj)
void clear() // 清除所有字段中的值
void clear(int field) // 清除field字段中的值
int get(int field)
void set(int field, int value)
Calender getInstance() // 使用预设的时区及地区,设定对象各字段的值
Calender getInstance(Local locale) // 依据所指定的地区locale,设定对象各字段的值
Calender getInstance(TimeZone zone) // 依据所指定的时区zone,设定对象各字段的值
Calender getInstance(TimeZone zone, Local locale) // 依据所指定的地区locale及时区zone,设定对象各字段的值
Date getTime() // 取得目前的时间
void setTime(Date date) // 设定对象的时间日期为date
TimeZone getTimeZone() // 返回对象设定的时区
void setTimeZone(TimeZone zone) // 设定对象的时区为zone
void set(int year, int month, int date, int hour, int minute, int second)
//例如
Calendar now = Calendar.getInstance();
//取得系统时间
int year,month,date,hour,minute,second;
year = now.get(Calendar.YEAR);
//取得 YEAR 字段的值
month = now.get(Calendar.MONTH)+1;
//取得 MONTH 字段的值
date = now.get(Calendar.DATE);
//取得 DATE 字段的值
hour = now.get(Calendar.HOUR_OF_DAY);
//取得 HOUR_OF_DAY 字段的值
minute = now.get(Calendar.MINUTE);
//取得 MINUTE 字段的值
second = now.get(Calendar.SECOND);
//取得 SECOND 字段的值
System.out.print("现在时间:"+year+" 年 "+month+" 月 "+date+" 日 "+hour+" 小时 "+minute+" 分 "+second+" 秒");
//显示时间
 
Calender使用没getMonth方便呀
 
我写的一个Date函数库
/**
* һЩÈÕÆÚ´¦Àíº¯Êý¼¯
*
* @author Bruce
* @see com.macroview.jcomponent.datecombobox.DgDatePickerPanel
* @see com.macroview.jcomponent.datecombobox.DgDateComboBox
* @version 1.0
* date: 2002.3.30
* copyright: Macroview Telecom
*/
package com.macroview.jcomponent.datecombobox;
import java.util.Calendar;
/** ÈÕÆÚ´¦Àí¹¤¾ßº¯Êý¼¯
*/
public class DgDateUtils
{
private DgDateUtils()
{}
/** Translate String to Integer
* @return (if Exception function will return -1) */
public static int str2int(String s)
{
try
{
return Integer.parseInt(s);
}
catch (Exception e)
{
return -1;
}
}
/** ÅжÏÊÇ·ñΪÈòÄê */
public final static boolean isLeapYear(int year)
{
return ((year % 4 == 0) &&
((year % 100 != 0) || (year % 400 == 0)));
}

/** µÃµ½Ö¸¶¨ÈÕÆÚÊÇÐÇÆÚ¼¸
* @return 0: Sunday, 1: Monday, 2: Tuesday ... 6: Saturday
* */

public final static int getDateOfWeek(int year, int month, int day)
{
Calendar cal = Calendar.getInstance();
cal.set(year, month-1, day);
return cal.get(cal.DAY_OF_WEEK) - 1;
}
/** @return »ñÈ¡¸ÃÔ·ݵÄ×î´óÌìÊý£¬Çø·ÖÈòÄêºÍ´óСÔÂ
*/
public final static int getMonthMaxDays(int year, int month)
{
switch (month)
{
case 4 :
case 6 :
case 9 :
case 11 :
return 30;
case 2 :
if (isLeapYear(year))
return 29;
else
return 28;
default : // case 1, 3, 5, 7, 8, 10, 12:
return 31;
}
}
/** @return »ñÈ¡µ±Ç°ÏµÍ³µÄ
year Öµ
*/
public final static int getCurrentYear()
{
return Calendar.getInstance().get(Calendar.YEAR);
}
/** »ñÈ¡µ±Ç°ÏµÍ³µÄ
month Öµ
@return 0 ~ 11 */
public final static int getCurrentMonth()
{
return Calendar.getInstance().get(Calendar.MONTH);
}
/** @return »ñÈ¡µ±Ç°ÏµÍ³µÄ
day Öµ
*/
public final static int getCurrentDay()
{
return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
}
/** @return 0: Sunday, 1: Monday, 2: Tuesday ... 6: Saturday */
public final static int getCurrentDayOfWeek()
{
return Calendar.getInstance().get(Calendar.DAY_OF_WEEK) - 1;
}

/** ½«ÊäÈëµÄÊý×Ö×é֯Ϊָ¶¨³¤¶ÈµÄ×Ö·û´®
*/
public final static String formatNumber(int nValue, int nDigit)
{
String sValue = nValue + "";
if (sValue.length() > nDigit)
return sValue.substring(sValue.length() - nDigit, sValue.length());
else
if (sValue.length() < nDigit)
for (int i = 0;
i < nDigit - sValue.length();
i++)
sValue = "0" + sValue;
return sValue;
}
}
 
结束贴子
 
后退
顶部