• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:時刻の表示に関しての質問です)

時刻を表示する方法とは?

hdnssdの回答

  • hdnssd
  • ベストアンサー率100% (2/2)
回答No.1

Calendarが簡単だと思います。 Calendar cal = new GregorianCalendar(); cal.setTimeInMillis(System.currentTimeMillis()); で現在時刻のカレンダーになります。 int minute = cal.get(Calendar.MINUTE); で今何分なのか分かります。年月日も同じ感じです。 更新はこの値を取っておいてスレッドで1秒おきにSystem.currentTimeMillis()の値をcalにsetし直して if(minute != cal.get(Calendar.MINUTE)){ //表示 minute = cal.get(Calendar.MINUTE); } とかでどうでしょう。無駄なチェックが59回起こることになりますが・・・

0321nkt
質問者

補足

回答有難うございます。 一応カレンダーで行ってみようと思います。 申し訳ありませんがもう一つ質問です。 #スレッドに関しては別の*.javaで定義しなければなりませんか? ミリ秒で取得した場合、ズレ等は気にならない程度になりますか?

関連するQ&A

  • GMT時刻を任意のタイムゾーン時刻への変換方法

    Date型のGMT時刻をOSで設定したタイムゾーンに応じたローカル時刻に変換してくれる ことを期待して下記サンプル(SimpleDateFormatにTimeZoneを設定)を作成しました。 しかし、変換前後で時刻は変わりませんでした。 GMT時刻=2010/06/13 09:15:30 を作成。OSのタイムゾーンを日本に設定し、変換。 変換後の時刻は9時間後の2010/06/13 18:15:30を期待したのですが変換前後で変化は ありませんでした。下記がそのサンプルなのですが何か問題がありますでしょうか。 また、サンプルではOSからタイムゾーンを取得しているのですがブラウザのタイムゾーンを 取得することはできるのでしょうか。HTTP request headersにはタイムゾーン情報は無く JavaScriptを経由してとらないといけないという記述をどこかで見たことはあるのですが・・・。 【サンプル】 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class TimeZoneTest { private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); public static void main(String[] args) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2010); cal.set(Calendar.MONTH, 5); cal.set(Calendar.DAY_OF_MONTH, 13); cal.set(Calendar.HOUR_OF_DAY, 9); cal.set(Calendar.MINUTE, 15); cal.set(Calendar.SECOND, 30); Date todayDate = cal.getTime(); System.out.println("GMT時刻=" + formatter.format(todayDate).toUpperCase()); // GMT時刻=2010/06/13 09:15:30 String convertDate =convertTime(todayDate); // OSのTimeZoneId=Asia/Tokyo にて変換 System.out.println("ローカル時刻=" + convertDate); // ローカル時刻=2010/06/13 09:15:30 何故??? } public static String convertTime(Date todayDate) { String timeZoneId = TimeZone.getDefault().getID(); System.out.println("OSのTimeZoneId=" + timeZoneId); // OSのTimeZoneId=Asia/Tokyo formatter.setTimeZone(TimeZone.getTimeZone(timeZoneId)); return formatter.format(todayDate).toUpperCase(); } }

    • ベストアンサー
    • Java
  • 月の表示

    HPで今月を表示したいです。 数字がローマ字ですが、漢字で表示したいです。 例えば10月が十月で表示する事が可能ですか? <SCRIPT language="javascript"> dd = new Date(); yy = dd.getYear(); mm = dd.getMonth() + 1; dd = dd.getDate(); if (yy < 2000) { yy += 1900; } if (mm < 10) { mm = "0" + mm; } if (dd < 10) { dd = "0" + dd; } document.write("<FONT size='-1'>"); document.write(mm + "月" ); document.write("</FONT>"); </SCRIPT> 教えてください! お願いします。

  • 元のテーブルはいじらずフォーム上のみで表示形式を変

    アクセスのフォームにコンボボックスを作り、値集合ソースにテーブル日付型のフィールドを指定し、 値集合タイプをテーブル/クエリにしてあります。 そのコンボボックスには問題なくデータは表示されるのですが、 コンボボックスに表示する日付の形式を、yy/mm/dd形式で表示させたいのです。 コンボボックスの書式をyy/mm/ddにしてみましたが、 yyyy/mm/ddのままです。 元のテーブルのデザインビューでフィールドの書式をyy/mm/ddにしたら、 連動してフォームのコンボボックスもyy/mm/ddになりましたが、 元のテーブルはいじらずフォーム上のみで表示形式を変えることは不可能なのでしょうか? よろしくお願いします。

  • C# 時刻 表示

    恐れ入ります。 C#で現在時刻の表示方法をお教えください。 通常、*時○分△秒という表示ですが、今回は秒の形式は△.△という形で秒の単位を小数点1桁まで表示したいのです(時間そのものの正確さを要求しているわけではありません。1秒以内に発生する動作の時間を区別したいためです)。 秒までならば、 DateTime.Now.ToString("hh:mm:ss")なる形で得られますので、これを真似して DateTime.Now.ToString("hh:mm:ss.s")としても表示上は確かに秒の小数点まで出力されますが、 Thread.Sleep(100) というメソッドをfor文の中に入れて、0.1秒間隔で表示させることによって確認しようとしましたが、 0.1秒きざみでの時刻表示は得られませんでした。 Thread.Sleep(100) は特に問題ないので、 DateTime.Now.ToString("hh:mm:ss.s") がうまく働いていないためと思われます。 .NETのライブラリも確認したのですが、探し方が悪いためか情報を得ることができませんでした。 上記、質問お分かりになる方はよろしくお願いします。

  • 時刻設定

    JAVAでアプリケーションを作成しています。質問内容としてはOSが持っている時刻をJAVAから設定できないかなと思い、調査中です。時刻の収得などはカレンダークラスなどで収得できますが、設定の方法が分かりません。ご存じの方がいましたら教えてください。 <環境> j2sdk1.4.2_05 windowsXP

    • ベストアンサー
    • Java
  • UTF8でperlスクリプトを書くと年月日が表示しない

    UTF-8で下記スクリプトを書いて実行すると、 $yy年$mo月$dd日 にあたる部分が表示されず、($day)$hh:$mm:$ss の部分しか表示されません。 ------------------------------------ #!/usr/bin/perl use utf8; use Encode; &get_date(); print "Content-type: text/html\;charset=utf-8\n\n"; print encode('utf8',"$date"); exit; sub get_date { ($ss,$mm,$hh,$dd,$mo,$yy,$day)= localtime(time); $day = ("日","月","火","水","木","金","土")[$day]; $yy = $yy+1900; $mo++; if ( $mo < 10 ) { $mo = "0$mo"; } if ( $dd < 10 ) { $dd = "0$dd"; } if ( $hh < 10 ) { $hh = "0$hh"; } if ( $mm < 10 ) { $mm = "0$mm"; } if ( $ss < 10 ) { $ss = "0$ss"; } $date = "$yy年$mo月$dd日($day)$hh:$mm:$ss"; } ------------------------------ EUCコードでスクリプトを書いてencodeなど不要な部分を変更した場合は$yy年$mo月$dd日の部分も表示されます。 また、上記  $date = "$yy年$mo月$dd日($day)$hh:$mm:$ss"; の部分を下記のように変更すると表示されますが... -------------------------- $date = $yy; $date .="年"; $date .= $mo; $date .="月"; $date .= $dd; $date .="日"; $date .="($day)$hh:$mm:$ss"; -------------------------- なぜ一括してダブルクォートで囲むと表示されないのでしょうか? 今まではEUCでスクリプトを書いておりました。UTF8に翻弄されております... どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • log4jが連続して同じログを

    JSFにて、log4jでログファイルにログ出力を行っているのですが、一回のログ出力メソッド呼び出しで、同じログが2~8行出力されてしまいます。 例) yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... ミリ秒単位で同じなので、一回出力されれば十分なのですが、複数行出力されています。 短時間で、かなりのサイズになってしまうため、困惑しております。 この事象の解決方法をご存じの方、解決方法をご教示願います。

  • Javaによる現在時刻の表示について

    Javaで現在時刻を表示するプログラムを作りました。 今のままだと 2009/8/26(木) 15:8:7となり、 月日・時間分秒が一桁のときは前に0をつけて二桁(15:08:07のように)表示にしたいと思います。 何かいい方法はないでしょうか? if文で作成するとなると、かなりたくさんのコードを書かないといけない気がします。 良い案があれば是非ご教授頂ければと思います。 import java.util.Calendar; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Servlet_106 extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException{ res.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = res.getWriter(); String title = "現在時刻:"; Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int day = cal.get(Calendar.DATE); StringBuffer dow = new StringBuffer(); switch (cal.get(Calendar.DAY_OF_WEEK)){ case Calendar.SUNDAY: dow.append("日"); break; ~~~(略)~~~ } int hour = cal.get(Calendar.HOUR_OF_DAY); int minute = cal.get(Calendar.MINUTE); int second = cal.get(Calendar.SECOND); out.println("<html lang=\"ja\">"); out.println("<head><title></title></head>"); out.println("<body>"); out.println("<p>現在時刻:" + year + "/" + month + "/" + day + "(" + dow + ")" + hour + ":" + minute + ":" + second + "</p>"); out.println("</body></html>"); out.close(); } }

    • ベストアンサー
    • Java
  • 日付をVARCHAR2型でYYYYMMDDと表示したい

    DATE型(YYYY/MM/DD HH24:MI:SS)の値を取り出し、 VARCHAR2(8)型の文字列YYYYMMDDにしたいと思っています。 TO_CHAR(DATE型,'YYYYMMDD')としても、YY-MM-DDと表示されてしまいます。 YYYYMMDDと文字型で表示させるにはどうすればよいのでしょうか。 宜しくお願い致します。

  • 年月日+時刻で00:00のときは空白にしたい

    質問をご覧いただきましてありがとうございます。 よろしくお願いいたします。 とあるセルの書式を以下のように設定しています。   mm"月"dd"日( "aaa" )"hh:mm"着" ここに入ってくる値は、"yyyy/MM/dd hh:mm"(年月日+時刻)の場合と"yyyy/MM/dd"(年月日のみ)の場合があります。 このとき、以下のように表記を分けたいのです。 ◆年月日のみ(yyyy/MM/dd)   [入力]2001/01/01   [結果]01月01日(月) 着 ◆年月日+時刻(yyyy/MM/dd hh:mm)   [入力]2001/01/01 15:30   [結果]01月01日(月)15:30着 現在の状態は、年月日だけの入力の場合、   [結果]01月01日(月)00:00着    書式の設定上、当然のことながら上記のように時間の部分が"00:00"と表示されます。 年月日だけの入力の場合に、この"00:00"を空白に置き換えるにはどうしたらいいでしょうか?