Kxgx.com - 移动开发网

本站快讯:
搜索: 您的位置主页>移动开发>J2ME>>阅读文章:MIDP中对日期时间的简单转换原代码|

MIDP中对日期时间的简单转换原代码|

2006-09-01   来源:   作者:未知   【 】 评论:0 条
    

MIDP的Date和Calendar类都是J2SE的精简版,也没有SimpleDateFormat之类的格式化类,因此,写了一个简单的DateTime类实现本地日期和时间的格式化。

package com.crackj2ee.midp.util;  
import java.util.*;  
public final class DateTime {  
    private static String[] WEEKDAYS = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"}; 

    public final String timeZone;
    public final int year;
    public final int month;
    public final int day;
    public final int weekday;
    public final int hour;
    public final int minute;
    public final int second;
    public DateTime(Date date, String timeZone) {
        this.timeZone = timeZone;
        Calendar c = timeZone==null ? Calendar.getInstance() : Calendar.getInstance(TimeZone.getTimeZone(timeZone));
        c.setTime(date);
        year = c.get(Calendar.YEAR);
        month = c.get(Calendar.MONTH);
        day = c.get(Calendar.DAY_OF_MONTH);
        weekday = c.get(Calendar.DAY_OF_WEEK);
        hour = c.get(Calendar.HOUR_OF_DAY);
        minute = c.get(Calendar.MINUTE);
        second = c.get(Calendar.SECOND);
    }
    public DateTime(long time, String timeZone) {
        this(new Date(time), timeZone);
    }
    public Date toDate() {
        Calendar c = Calendar.getInstance(TimeZone.getTimeZone(timeZone));
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month);
        c.set(Calendar.DAY_OF_MONTH, day);
        c.set(Calendar.HOUR_OF_DAY, hour);
        c.set(Calendar.MINUTE, minute);
        c.set(Calendar.SECOND, second);
        return c.getTime();
    }
    public String toDateString() {
        return year + "-" + (month+1) + "-" + day + "(" + WEEKDAYS[weekday-1] + ")";
    }
    public String toTimeString() {
        return hour + ":" + minute + ":" + second;
    }

    public String toString() {
        return toDateString() + " " + toTimeString();
    }
}  

示例:

输出当前日期和时间:new DateTime(new Date(), "GMT+8").toString();  
转换到Date对象:toDate(); 

注意,要指定时区,否则时间永远是GMT标准时间。可以在Windows时区设置中查询,北京时间是"GMT+8"

Tags:  
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册)密码:匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 帮助