Android提供了日期和时间的widget。

日期widget

DatePicker和DatePickerDialog,DatePickerDialog是装载DatePicker的一个简单的容器,如图所示。分别有一个触发方法OnDateChangedListener( ) 和OnDateSetListener( )。

在这个例子中,我们设置了两个button和一个textView,当按键弹出DatePickDialog。

步骤1:一些有关时间的java函数获得当前时间的实例:Calendar calendar = Calendar.getInstance();

获得当前时间:calendar.get(Calendar.YEAR),通过设置参数可获得年,月,日,时,分,秒

设置时间:calendar.set(Calendar.YEAR,2011),可设置年,月,日,时,分,秒

用String给出当前的时间信息,可以使用Java的SimpleDateFormat,如下处理:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); //可以设置不同的类型

通过sdf.format(calendar.getTime()就可以获得相关的info string,可供出来

步骤2:设置Android XML文件并编写有关的代码(略去)

步骤3:弹出日期Dialog,并设置Set的触发回调函数new DatePickerDialog(

/*参数1:context,在我的例子是内部类中调用,所有需指明this是那个this*/Chapter9Test1.this,

/*参数2:设置Set日期的回调函数*/ dateSet,

/*参数3,4,5:设置的年月日*/calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE)).show() ;

最后一个show()表示将dialog显示出来。Set的回调函数,是OnDateSetListener(),如下:DatePickerDialog.OnDateSetListener dateSet = new DatePickerDialog.OnDateSetListener() {

public void onDateSet (DatePicker view, int year, int monthOfYear, int dayOfMonth) {

calendar.set(Calendar.YEAR, year);

calendar.set(Calendar.MONTH, monthOfYear);

calendar.set(Calendar.DATE, dayOfMonth);

}

};

时间widget

日期的非常相似,TimePickerDialog(可以通过OnTimeSetListener设置回调函数)是装载TimePicker(可通过OnTimeChangedListener设置回调函数)的简单Dialog的容器。

弹出Dialog,可以照着画瓢,采用如下方式。同样的第一个参数是context,第二个参数是回调函数,第三和第四是时和分,第5个参数表示是否24小时制的显示方式。new TimePickerDialog(Chapter9Test1.this, timeSet, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true).show() ;

对于回调函数timeSet,可通过如下设置:

TimePickerDialog.OnTimeSetListener timeSet = new TimePickerDialog.OnTimeSetListener() {

@Override

public void onTimeSet (TimePicker view, int hourOfDay, int minute) {

calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);

calendar.set(Calendar.MINUTE,minute);

}

};

在Activity中调起Dialog的其他方式

在上面的例子中,创建了xxxPickerDialog,通过show()方法将它们调起来。在Android的Tutorial的例子在,可以重写Acitivity的onCreateDialog方法来实现,下面以调起日期的Dialog为例子。public class Chapter9Tutorial1 extends Activity {

... ...

//步骤1:给出我们需要显示的不同Dialog的ID ,以便能判断显示哪个Dialog

static final int DATE_DIALOG_ID = 0;

//步骤2:通过showDialog(Dialog ID)调起相应的Dialog

protected void someMethod(.... ) {

... ...

showDialog(DATE_DIALOG_ID);

... ...

}

//重写Acitivity的方法 onCreateDialog(int id),该方法告诉showDialog(),要显示哪个Dialog,给出Dialog的对象

protected Dialog onCreateDialog(int id) {

switch(id){

case DATE_DIALOG_ID:return new DatePickerDialog( this,mDateSetlisten,mYear,mMonth,mDay);... ...}

return super.onCreateDialog(id); //或者直接return null;

}

}

模拟时钟和数字时钟

前面的例子,我们通常要设置某个日期或者时间,如果我们只是想向用户显示当前的时间,可以采用模拟始终和数字时钟。如图所示,下面是相关的Android XML文件:

android:layout_width="fill_parent"  android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_alignParentTop="true" />

android:layout_width="wrap_content"   android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_below="@id/c91_analog" />

计时器Chronometer

Android提供一个计时器Chronometer,这个widget的类似DiagitalClock,在XML中通过使用 来定义。下面是来自Android reference的一个例子。最上面的就是Chronometer widget。

有下面几个关键的控制函数:start():开始实时更新计时器

stop():停止实时更新计时器,注意,实际上计时器还在走

setbase():设置初始的基准时间,如果设置当前时间,setBase(SystemClock.elapsedRealtime()),即重置计时器,计时器归零

format():设置显示格式,缺省为MM:SS或者H:MM:SS,如果我们希望显示的内容是"我的计时器 00:00",可以使用format("我的计时器 %s"),第一个%s,表示缺省的时间格式。如果清空格式,采用缺省的,看通过format(null)来实现。

java.util.Date中的loe_有趣的widget-日期和时间相关推荐

  1. java calendar去掉时分秒_java 8:只取年月日的java.util.Date(时分秒清零)对象

    废弃的方法(@Deprecated) 如果不想要java.util.Date中的时分秒数据,希望将它清零,只保留年月日,最简单的办法是 调用setHours,setMinutes,setSeconds ...

  2. 如何将java.util.Date转换为java.sql.Date?

    我试图使用java.util.Date作为输入,然后用它创建一个查询-所以我需要一个java.sql.Date . 我很惊讶地发现它不能隐式或显式地进行转换-但我什至不知道该怎么做,因为Java AP ...

  3. date设置时间_解决 IDEA 无法找到 java.util.Date 的问题

    原文首发于 https://studyidea.cn/ 问题 最近在项目中频繁使用到 java.util.Date,但是使用 IDEA 提示查找 Date 类,却无法找到 java.util.Date ...

  4. java.util.Date在jdk1.8之后有新的替代了

    前言 为什么我们需要一个新的日期和时间库? Java开发中一个长期存在的窘境是对普通开发者的date和time用例支持不足. 例如,现存的类(例如java.util.Date和SimpleDateFo ...

  5. 取java.sql.date日期_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...

    1.如何将java.util.Date转化为java.sql.Date? 转化: java.sql.Date sd; java.util.Date ud; //initialize the ud su ...

  6. Java.util.Date类型的转化成为数据库中的Date类型。

    最完整的一个网页:http://www.zxbc.cn/html/20080905/65272.html 作者:天涯 来源:中国自学编程网 发布日期:1220576012 在JDK 1.1后,java ...

  7. java中将date插入mysql中date_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...

    1.如何将java.util.Date转化为java.sql.Date? 转化: java.sql.Date sd; java.util.Date ud; //initialize the ud su ...

  8. java sql date 时分秒_java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间...

    java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类). java.sql.Date是java.util.Da ...

  9. 将java.time.LocalDate转换为java.util.Date类型

    本文翻译自:Convert java.time.LocalDate into java.util.Date type I want to convert java.time.LocalDate int ...

  10. java.util.date的格式_java.util.Date格式将yyyy-mm-dd转换为mm-dd-yyyy

    我有一个java.util.Date,格式为yyyy-mm-dd. 我希望它的格式为mm-dd-yyyy 以下是我尝试进行此转换的示例util: // Setting the pattern Simp ...

最新文章

  1. c++exe程序在别人电脑上双击无法打开_电脑换新系统的应用可以这样快速迁移
  2. python到底可以做什么-Python究竟是什么?能干嘛?
  3. nginx小总结(五)
  4. 【Spring框架家族】Spring Cloud Eureka 之常用配置解析(转载)
  5. Java - Java集合中的快速失败Fail Fast 机制
  6. Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey读书笔记
  7. centos6.8下安装破解quartus prime16.0以及modelsim ae安装
  8. 求最大子段和的一些算法
  9. RHEL5下DNS配置详解3
  10. 【Git、GitHub、GitLab】五 git中裸仓库.git下的内容
  11. 颉伟/郭勇/李伟合作阐释哺乳动物早期胚胎发育中表观重编程和基因印记的进化保守性和物种特异性...
  12. linux既能归档也能压缩的命令,Linux压缩及归档
  13. 根据ReentrantLock -- 解析AQS原理
  14. 51单片机直流电机调速
  15. 前端学习分为几个阶段,你属于哪个阶段?
  16. oracle 经纬度格式转换,GOOGLE与百度经纬度互转(plsql版)
  17. 远程访问大华摄像头_通过WEB调用大华网络摄像头
  18. JavaSE(8)-细节狂魔:21k字长篇深入理解类和对象
  19. UDP是全双工通信的吗
  20. vue项目落地(qiankun.js)微前端服务

热门文章

  1. 增删改查以及冒泡算法的综合案例
  2. 泰国将于5月1日全面开放,来曼谷骑行探索老城区
  3. Geek ? 什么是 Geek ? 谁是 Geek ?
  4. 在电脑上如何录制游戏
  5. js 将图片置灰_将图片转换成黑白(灰色)的css和js的方法
  6. STM32HAL库函数
  7. 计算机基础知识在哪里学,学习电脑基础知识先从哪方面入手?
  8. openstack虚拟机无法获取IP地址
  9. Excel表格怎么换行?Excel单元格内换行
  10. 太阳直射点纬度计算公式_干货 | 正午太阳高度公式及其应用!