package com.example.datetest; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import android.app.Activity; import android.content.ContentResolver; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.widget.TextView; public class MainActivity extends Activity { private Thread clockThread; private boolean isRunning = true; private Handler handler; private int mYear; private int mMonth; private int mDay; private int mHour; private int mMinute; TextView text1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text1 = (TextView) findViewById(R.id.textView1); final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); mHour = c.get(Calendar.HOUR_OF_DAY); mMinute = c.get(Calendar.MINUTE); String YY = String.valueOf(mYear); String MM = String.valueOf(mMonth); String DD = String.valueOf(mDay); String hh = String.valueOf(mHour); String mm = String.valueOf(mMinute); SimpleDateFormat dateformat1 = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss a E"); Date d = new Date(); ContentResolver cv = this.getContentResolver(); final String strTimeFormat = android.provider.Settings.System .getString(cv, android.provider.Settings.System.TIME_12_24); // if (strTimeFormat.equals("12")) { // // SimpleDateFormat dateformat2 = new SimpleDateFormat( // "yyyy-MM-dd a hh:mm:ss E"); // String a1 = dateformat2.format(d); // text1.setText(a1); // } // // else if (strTimeFormat.equals("24")) { // // SimpleDateFormat dateformat3 = new SimpleDateFormat( // "yyyy-MM-dd HH:mm:ss E"); // String a1 = dateformat3.format(d); // text1.setText(a1); // } // handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: SimpleDateFormat dateformat1 = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss a E"); String a1 = dateformat1.format(msg.obj); text1.setText(a1); } } }; clockThread = new Thread(new Runnable() { @Override public void run() { while (isRunning) { try { Thread.currentThread().sleep(1000); Message msg = new Message(); msg.obj = new Date(); msg.what = 0; handler.sendMessage(msg); } catch (InterruptedException e) { e.printStackTrace(); } } } }); clockThread.start(); // G 年代标志符 // y 年 // M 月 // d 日 // h 时 在上午或下午 (1~12) // H 时 在一天中 (0~23) // m 分 // s 秒 // S 毫秒 // E 星期 // D 一年中的第几天 // F 一月中第几个星期几 // w 一年中第几个星期 // W 一月中第几个星期 // a 上午 / 下午 标记符 // k 时 在一天中 (1~24) // K 时 在上午或下午 (0~11) // z 时区 } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
参考资料:http://tech.it168.com/a2011/0922/1250/000001250289_all.shtml
相关推荐
制作一个数字时钟标签组件,显示当前时间,并将该标签添加到框架中。
Android线程结束——合理的结束你想结束的线程
浅谈android线程模型
android 线程间通讯
Android线程间通信的Message机制Android线程间通信的Message机制Android线程间通信的Message机制Android线程间通信的Message机制Android线程间通信的Message机制
android 线程之间通过Handler发送消息实例
很多人都在想一个问题:大型软件有些倒计时用太多,会导致卡顿等现象,所以加入了线程方式控制.少用了时钟周期为主的倒计时,从此不再卡顿,可以安稳的过日子了.. A lot of people think a problem: large some ...
java语言,利用多线程编写的时钟程序源代码。仅供参考。
易语言多线程时钟源码,多线程时钟,时钟
从现实生活中理解android 线程消息机制
Delphi XE5例子中的一个Android线程使用的代码AnonymousThread
一个测试Android的线程、消息以及动画显示图片的样例源码,比较散的一个例子,虽然没有完成什么完整的功能,不过演示了android线程的应用,和消息以及以动画效果显示一张图片的功能,这些在android的开发中,似乎...
Android开发中的多线程编程技术资源包 TAG:Android 多线程 应用开发 Alfred整理发布,版权所有!
首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应。 而Runnable是一个接口,Thread是Runnable的子类。所以说,他俩都算一个进程。 ...
android多线程机制教程 android多线程机制 android多线程机制 android多线程机制
android多线程管理,实现多线程
android线程启动方法源代码 本例子实现了android中线程启动的方法 有助于初学者学习
用java写的一个数字时钟,弹出的窗口用于显示当前系统时间,使用液晶字体显示时间,效果更炫 这个小案例汇集了众多java功能,图形用户编程、多线程等
Android多线程任务优化2:实现后台预读线程
线程代替时钟 易语言 易语言源码,线程源码 线程代替时钟