抓系統時間的寫法:
Calendar now = Calendar.getInstance();
設定顯示的格式
DateFormat timeFormat = new SimpleDateFormat("H:mm a"); String time = timeFormat .format(now.getTime()); DateFormat dateFormat = new SimpleDateFormat("EEE, MMM d, yyyy"); String date = dateFormat.format(now.getTime());
如果要更改時間 (ex.加30分鐘)
now.add(Calendar.MINUTE, 31); String time = timeFormat .format(now.getTime());
再利用計時器每秒更新時間:
private Runnable timeTask = new Runnable() { @Override public void run() { now = Calendar.getInstance(); timeStr = timeFormat.format(now.getTime()); dateStr = dateFormat.format(now.getTime()); tv_currentTime.setText(timeStr); tv_currentDate.setText(dateStr); timeHandler.postDelayed(timeTask, 1000); } };
完整程式碼 MainActivity.java:
public class MainActivity extends AppCompatActivity { private String timeStr, dateStr; private TextView tv_currentTime, tv_currentDate; private Calendar now; private DateFormat timeFormat, dateFormat; private Handler timeHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_currentTime = findViewById(R.id.id_tv_CurrentTime); tv_currentDate = findViewById(R.id.id_tv_CurrentDate); now = Calendar.getInstance(); timeFormat = new SimpleDateFormat("h:mm a"); dateFormat = new SimpleDateFormat("EEE, MMM d, yyyy"); timeStr = timeFormat.format(now.getTime()); dateStr = dateFormat.format(now.getTime()); tv_currentTime.setText(timeStr); tv_currentDate.setText(dateStr); timeHandler = new Handler(); timeHandler.postDelayed(timeTask, 1000); } protected void onDestroy() { super.onDestroy(); timeHandler.removeCallbacks(timeTask); } private Runnable timeTask = new Runnable() { @Override public void run() { now = Calendar.getInstance(); timeStr = timeFormat.format(now.getTime()); dateStr = dateFormat.format(now.getTime()); tv_currentTime.setText(timeStr); tv_currentDate.setText(dateStr); timeHandler.postDelayed(timeTask, 500); } }; }END
沒有留言:
張貼留言