天天看点

j2me中如何使用Calendar获取系统时间并转换成字符串格式

学J2ME的人应该都知道并不是JDK里类的方法都能在J2ME API中存在,有些时候我们却要自己手动实现一个类似于JDK 里的类方法,无非就是J2ME里没有此API方法.

 Calendar 类是一个抽象类,它为特定瞬间与一组诸如

YEAR

MONTH

DAY_OF_MONTH

HOUR

日历字段

之间的转换提供了一些方法.正是利用这些方法实现以下功能:

               TimeZone tz = TimeZone.getDefault();

/**取系统默认市区,这里有一个问题需要注意的是,WTK下的市区本真机上或者系统时间差8小时,这个是时区问题.真

*机上测试就不会有这个8小时差距的

                Calendar ca = Calendar.getInstance(tz);

//Calendar 的

getInstance

方法返回一个

Calendar

对象,其日历字段已由当前日期和时间初始化

                String  strYear=String.valueOf(ca.get(Calendar.YEAR));//获取当前年时间并转为字符串型

                String  strMonth=String.valueOf(ca.get(Calendar.MONTH)+1);//获取当前月时间并转为字符串型

//ca.get(Calendar.MONTH)+1为什么加一是因为,0表示1月,1表示2月,依次类推

                String  strDate=String.valueOf(ca.get(Calendar.DATE));//获取当前日时间并转为字符串型

                String  SysDate=null;

                if((ca.get(Calendar.MONTH)+1)<=9&&ca.get(Calendar.DATE)<=9)

                {

                 SysDate=strYear+"0"+strMonth+"0"+strDate;

                }else

                 if((ca.get(Calendar.MONTH)+1)>9&&ca.get(Calendar.DATE)>9)

                 {

                  SysDate=strYear+strMonth+strDate;

                 }else

                  if((ca.get(Calendar.MONTH)+1)<=9&&ca.get(Calendar.DATE)>9)

                  {

                   SysDate=strYear+"0"+strMonth+strDate;

                  }else

                   if((ca.get(Calendar.MONTH)+1)>9&&ca.get(Calendar.DATE)<=9)

                   {

                    SysDate=strYear+strMonth+"0"+strDate;

                   }

               System.out.println(SysDate);

输出结果:20070904