0

このコードが提供する現在の時刻を取得するにはどうすればよいですか (Time--> Thu Jan 01 05:56:27 ACT 1970)??

DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss.SS"); 
         Date time = new Date(); 
         String currentTime=timeFormat.format(time);
         time=timeFormat.parse(currentTime);
         System.out.println("Time-->"+time);
         salesOrder.setOrderTime(time);
4

3 に答える 3

1

クラスjava.util.Dateは、時刻 (時、分、秒、ミリ秒) のみを格納するのには適していません。クラスDateはタイムスタンプで、1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数が含まれます。

代わりにJoda TimeライブラリLocalTimeから使用してください。

注: コードで行っていることは、最初にDateオブジェクトを にフォーマットStringしてから、再び に解析してDate、日、月、年の部分を破棄することです。最終的に得られるのはDate、1970 年 1 月 1 日 00:00:00 GMT からの時間、分、秒、およびミリ秒に設定されたオブジェクトです。

于 2012-10-17T13:23:16.297 に答える
0

フォーマットには、時間、分、秒のみが含まれます。日付コンポーネントのない時刻のみを指定するとDateFormat.parse()、現在の日付は入力されません。これは、システムのエポックである「タイムゼロ」(1970年1月1日)にフォールバックします。Dateオブジェクトに戻すことができる日付文字列が必要な場合は、年と月と日も含める必要があります。時間として。

于 2012-10-17T13:29:15.817 に答える
0
use DateFormat timeFormat = new SimpleDateFormat(); 

それ以外の

DateFormat timeFormat = new SimpleDateFormat("HH:MM:ss:SS");

問題はフォーマットにあります。日、年の野手が提供されていないため、そのように動作しています。または、適切なフォーマットでこれを使用できます:

DateFormat timeFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");

編集:

これを試して:

 Calendar c = Calendar.getInstance(); 
  c.setTime(time);
  System.out.println(c.get(Calendar.YEAR)+ "  "+c.get(Calendar.MONTH)+ " "+ c.get(Calendar.DAY_OF_MONTH));

time設定されている場所は、 Calendar objectsimpleDateFormat を使用して解析/フォーマットされていない時間です。からcalendar object、個々の月、日、年を取得して、好きなように使用するか、電話c.getTime()して取得することができますDate object

于 2012-10-17T13:31:50.490 に答える