0

ブラックベリーで HTTP 日付形式が必要です。例:

2013 年 4 月 13 日(土)06:06:13 GMT

私はそれを実装しました。これがDate Util Classの私のコードです:

package mypackage;

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

import net.rim.device.api.i18n.Locale;
import net.rim.device.api.i18n.SimpleDateFormat;

public class DateUtils {

       private static SimpleDateFormat _df;

       public static String getDate()
       {
          Calendar cal = Calendar.getInstance();
          cal.setTime( new Date() );

          int year = cal.get( Calendar.YEAR );
          int month = cal.get( Calendar.MONTH ) + 1;
          int day = cal.get( Calendar.DAY_OF_MONTH );

          return "" + year
                 + "-" + month
                 + "-" + day;
       }


       public static String getHttpDate()
       {
          return getHttpDate( new Date() );
       }

       public static String getHttpDate( long timestamp )
       {
          return getHttpDate( new Date( timestamp ) );
       }

       public static String getHttpDate( Date date )
       {
          return _df.format( date );
       }

       public static String getTime()
       {
          Calendar cal = Calendar.getInstance();
          cal.setTime( new Date() );

          int hours = cal.get( Calendar.HOUR_OF_DAY );
          // use 24 hour clock
          int minutes = cal.get( Calendar.MINUTE );
          int seconds = cal.get( Calendar.SECOND );
          int milli = cal.get( Calendar.MILLISECOND );

          return formatTime( hours, minutes, seconds, milli );
       }

       public static String getTimestamp()
       {
          Calendar cal = Calendar.getInstance();
          cal.setTime( new Date() );

          int year = cal.get( Calendar.YEAR );
          int month = cal.get( Calendar.MONTH ) + 1;
          int day = cal.get( Calendar.DAY_OF_MONTH );
          int hours = cal.get( Calendar.HOUR_OF_DAY );
          // use 24 hour clock
          int minutes = cal.get( Calendar.MINUTE );
          int seconds = cal.get( Calendar.SECOND );
          int milli = cal.get( Calendar.MILLISECOND );

          return "" + year
                 + "-" + month
                 + "-" + day
                 + "_" + formatTime( hours, minutes, seconds, milli );
       }

       private static String formatTime( int hours, int minutes, int seconds, int milli )
       {
          StringBuffer buf = new StringBuffer();
          buf.append( "" + hours );

          buf.append( "." );

          if( minutes < 10 )
             buf.append( "0" + minutes );
          else
             buf.append( "" + minutes );

          buf.append( "." );

          if( seconds < 10 )
             buf.append( "0" + seconds );
          else
             buf.append( "" + seconds );

          buf.append( "-" );

          if( milli < 10 )
             buf.append( "00" + milli );
          else if( milli < 100 )
             buf.append( "0" + milli );
          else
             buf.append( "" + milli );

          return buf.toString();
       }

       static
       {
          _df = new SimpleDateFormat( "EEE, dd MMM yyyy HH:mm:ss zzz");

       }
}

そして、私はこのクラスを次のように使用しています:

private String getDate()
{       
    String date= DateUtils.getHttpDate(new Date());
    if(date.trim().length()!=("EEE, dd MMM yyyy HH:mm:ss zzz").length())
        date = date.substring(0, ("EEE, dd MMM yyyy HH:mm:ss zzz").length());
    System.out.println("Date is >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+date);
    return date;
}

私が直面している問題は、OS 5 および OS 7 のシミュレーターで動作しているということです。ただし、OS 6 シミュレーターでは動作しません。トーチ 9800 シミュレーターで、私は得ています

2013 年 4 月 13 日(土)11:33:19 アシ

デバイスをチェックしたとき、同じ問題に直面しました。助けてください、私はこれが緊急に必要です。

4

1 に答える 1