月曜日が怖い駄猫です。今晩は。
こういう場で書きこむのは初めてですが、珍しく酔った勢いで書いてしまへ。
単に現在時刻を取得して文字列化するなら以下で問題ないと思います。
好きなタイミングで呼んでください。
SimpleDateFormat sdf12 = new SimpleDateFormat("KK時mm分ss秒");
SimpleDateFormat sdf24 = new SimpleDateFormat("HH時mm分ss秒");
long now = System.currenttimemillis();
String timeFormat1 = sdf12.format(now);
String timeFormat2 = sdf24.format(now);
で、常に時間を取得し続けるというのはCPU負荷的にどうなんでしょう。
whileさせたとありましたのでこのように書かれたのかと想像します。
void onTestMethod(){
while(true){
// 取得し続ける的なソース
}
}
当然onTestMethodがリターンしませんので、何時迄経っても動かないかと思われます。
たぶん…
超絶適当に考えると、SOUTENMONさんの目的は一応は果たせると思いますが如何でしょうか
// Activityの中と仮定
private Handler mHandler = new Handler();
//private SimpleDateFormat sdf12 = new SimpleDateFormat("KK時mm分ss秒");
private SimpleDateFormat sdf24 = new SimpleDateFormat("HH時mm分ss秒");
private boolean flag = false;
private void onTestMethod(){
flag = true;
Thread th = new Thread(){
public void run(){
while( flag){ //← 適当なタイミングで誰かが落とす
try {
Thread.sleep(1000); // ← 秒単位で取れればいいのであればとりあえず1秒…
} catch (InterruptedException e) {
e.printStackTrace();
}
long now = System.currenttimemillis();
//String timeFormat1 = sdf12.format(now);
String timeFormat2 = sdf24.format(now);
mHandler.post(new Runnable() {
public void run() {
tv.setText("現在時刻" + "表示形式2・・・" + timeFormat2);
}
});
}
}
};
th.start();
}
public void onPause(){
flag = false;
super.onPause();
}
もちろん上記の書き方は正直あれですが…
とりあえず動けばというのであれば動くと思います。
これをTimerクラスを使用するのか、HandlerのsendMessageDelayedなどを使用するのか、
その他別の何かで実装するのかはクラス設計次第だとも思いますので、興味があれば調べてみてください。
プログラミングを始めたばかりとのことですので、先ずはなにか本を一冊やりきってみては如何でしょうか。
参考
SimpleDateFormat
http://java.sun.com/javase/ja/6/docs/ja/api/java/text/SimpleDateFormat.html
AndroidのHandlerとは何か(adamrockerさんの記事)
http://www.adamrocker.com/blog/261/what-is-the-handler-in-android.html