时间处理在程序开发中相当常见,下面对于时间处理做一个简单的说明。
一、时间的表达方式
时间在J2ME中有两种表达方式:
1、以和GMT1970年1月1号午夜12点和现在相差的毫秒数来代表
这种方式适合比较两个时间之间的差值。
2、以对象的形式来表达
二、时间处理的相关类
时间处理在J2ME中涉及三个类:
1、System类
long time = System. currentTimeMillis();
使用该方法可以获得当前时间,时间的表达方式为上面提到的第一种。
2、Date类
Date date = new Date();
获得当前时间,使用对象的形式来进行表达。
3、Calendar类
Calendar calendar = Calendar. getInstance();
三、时间处理的具体操作
1、以上三种表达方式的转换:
a)将System类获得的时间转换为Date对象
Date date = new Date(System. currentTimeMillis());
b)将Date类型的对象转换为Calendar类型的对象
Calendar calendar = Calendar. getInstance();
Date date = new Date();
calendar.setTime(date);
2、使用Calendar完成一些日期操作:
Calendar是时间处理中最常用也是功能最强大的类,可以用它来获得某个时间的日期、星期几等信息。
获得日期:
Calendar calendar = Calendar. getInstance();
……
int day = calendar.get(Calendar. DATE);
获得日期、年份、星期的操作和这个类似。
需要注意的是:Calendar中表示月份的数字和实际相差1,即1月用数字0表示,2月用数字1表示,……12月用数字11表示。
参考资料: http://dev.yesky.com/224/2204224.shtml
======================================================================
j2me中是通过Date和Calendar两个类来对日期进行完整操作的。
Java中的日期都使用long类型表示,意思是从1970年1月1日,00:00:00 GMT开始的毫秒数。
Date类位于java.util.Date;
它有两个构造函数:
Date();可获取当前系统的时间,相当于调用:System.currentTimeMillis();
Date(long date);在构造的时候设置一个初始值。参数date是一个表示时间的参数。
该类有以下两个方法来设置和获取日期值。
void setTime(long time)
long getTime()
midp中Date不能使用年月日标示,通常需要和Calendar类结合使用。
Calendar类位于java.util.Calendar;
不能使用new方法构造Calendar对象,需要使用它的静态方法getInstance(),也可以为它制定一个时区参数getInstance(TimeZone zone)。此外还可以分别使用下面的方法设置和获取此Calendar对象的时区:
void setTimeZone(TimeZone value)
getTimeZone()
使用getTimeZone()方法可以获取Calendar对象的当前时间,返回一个Date对象。而使用方法setTime(Date date)用来设置Calendar对象的当前时间。
通过Calendar对象可以获取和设置每个时间字段的值,比如年、月、日、时、分、秒等。下面是我在实际工作中用到的一个将System.currentTimeMillis()获得的时间,转换成字符串(String),并在屏幕输出的函数进行的扩展和变形,这个例子几乎涵盖了Date类和Calendar类中所有的字段和方法。如下:
public String getDateString(long time) {
String str = "";
Date date = new Date(time);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
str = String.valueOf(calendar.get(Calendar.YEAR)) + "年" +
String.valueOf(calendar.get(Calendar.MONTH)) + "月" +
String.valueOf(calendar.get(Calendar.DATE)) + "日" +
String.valueOf(calendar.get(Calendar.DAY_OF_WEEK)) + "//周几" +
String.valueOf(calendar.get(Calendar.AM_PM)) + "(午前或午后" +
String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)) + "时)" +
String.valueOf(calendar.get(Calendar.HOUR)) + "时" +
String.valueOf(calendar.get(Calendar.MINUTE)) + "分" +
String.valueOf(calendar.get(Calendar.SECOND)) + "秒" +
String.valueOf(calendar.get(Calendar.MILLISECOND)) + "毫秒";
return str;
}
如果调用getDateString(System.currentTimeMillis());返回结果可能是:
2007年5月16日周317时(午后5时)56分25秒900毫秒
一、时间的表达方式
时间在J2ME中有两种表达方式:
1、以和GMT1970年1月1号午夜12点和现在相差的毫秒数来代表
这种方式适合比较两个时间之间的差值。
2、以对象的形式来表达
二、时间处理的相关类
时间处理在J2ME中涉及三个类:
1、System类
long time = System. currentTimeMillis();
使用该方法可以获得当前时间,时间的表达方式为上面提到的第一种。
2、Date类
Date date = new Date();
获得当前时间,使用对象的形式来进行表达。
3、Calendar类
Calendar calendar = Calendar. getInstance();
三、时间处理的具体操作
1、以上三种表达方式的转换:
a)将System类获得的时间转换为Date对象
Date date = new Date(System. currentTimeMillis());
b)将Date类型的对象转换为Calendar类型的对象
Calendar calendar = Calendar. getInstance();
Date date = new Date();
calendar.setTime(date);
2、使用Calendar完成一些日期操作:
Calendar是时间处理中最常用也是功能最强大的类,可以用它来获得某个时间的日期、星期几等信息。
获得日期:
Calendar calendar = Calendar. getInstance();
……
int day = calendar.get(Calendar. DATE);
获得日期、年份、星期的操作和这个类似。
需要注意的是:Calendar中表示月份的数字和实际相差1,即1月用数字0表示,2月用数字1表示,……12月用数字11表示。
参考资料: http://dev.yesky.com/224/2204224.shtml
======================================================================
j2me中是通过Date和Calendar两个类来对日期进行完整操作的。
Java中的日期都使用long类型表示,意思是从1970年1月1日,00:00:00 GMT开始的毫秒数。
Date类位于java.util.Date;
它有两个构造函数:
Date();可获取当前系统的时间,相当于调用:System.currentTimeMillis();
Date(long date);在构造的时候设置一个初始值。参数date是一个表示时间的参数。
该类有以下两个方法来设置和获取日期值。
void setTime(long time)
long getTime()
midp中Date不能使用年月日标示,通常需要和Calendar类结合使用。
Calendar类位于java.util.Calendar;
不能使用new方法构造Calendar对象,需要使用它的静态方法getInstance(),也可以为它制定一个时区参数getInstance(TimeZone zone)。此外还可以分别使用下面的方法设置和获取此Calendar对象的时区:
void setTimeZone(TimeZone value)
getTimeZone()
使用getTimeZone()方法可以获取Calendar对象的当前时间,返回一个Date对象。而使用方法setTime(Date date)用来设置Calendar对象的当前时间。
通过Calendar对象可以获取和设置每个时间字段的值,比如年、月、日、时、分、秒等。下面是我在实际工作中用到的一个将System.currentTimeMillis()获得的时间,转换成字符串(String),并在屏幕输出的函数进行的扩展和变形,这个例子几乎涵盖了Date类和Calendar类中所有的字段和方法。如下:
public String getDateString(long time) {
String str = "";
Date date = new Date(time);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
str = String.valueOf(calendar.get(Calendar.YEAR)) + "年" +
String.valueOf(calendar.get(Calendar.MONTH)) + "月" +
String.valueOf(calendar.get(Calendar.DATE)) + "日" +
String.valueOf(calendar.get(Calendar.DAY_OF_WEEK)) + "//周几" +
String.valueOf(calendar.get(Calendar.AM_PM)) + "(午前或午后" +
String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)) + "时)" +
String.valueOf(calendar.get(Calendar.HOUR)) + "时" +
String.valueOf(calendar.get(Calendar.MINUTE)) + "分" +
String.valueOf(calendar.get(Calendar.SECOND)) + "秒" +
String.valueOf(calendar.get(Calendar.MILLISECOND)) + "毫秒";
return str;
}
如果调用getDateString(System.currentTimeMillis());返回结果可能是:
2007年5月16日周317时(午后5时)56分25秒900毫秒