1.Date对象

Date类在java.util包中。使用Date类的无参数构造方法创建的对象可以获取本地当前时间。

用Date的构造方法Date(long time)创建的Date对象表 示相对1970年1月1日0点(GMT)的时间,

例如参数 time取值60*60*1000秒表示Thu Jan 01 01:00:00  GMT 1970。

可以用System类的静态方法 public longcurrentTimeMillis()获取系统当前时间,这个时间是从1970.年1月1日0点(GMT)到目前时刻所走过的毫秒数(这是一个不小的数)。可以根据currentTimeMillis()方法得到的数字,用Date的构造方法Date(long time)来创建一个本地日期的Date对象。

2.格式化时间

Date对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年。例如:

Sat Apr 28 21:59:38 CST 2001。

我们可能希望按着某种习惯来输出时间,比如时间的序 :年 月 星期 日或年 月 星期 日 小时 分 秒。

这时可以使用DateFormat的子类SimpleDateFormat来实现日期的格式化。SimpleDateFormat有一个常用构造方法:

public SimpleDateFormat(String pattern)。

该构造方法可以用参数pattern指定的格式创建一个对 象,该对象调用:

format(Date  date)方法格式化时间对象date。

需要注意的是,pattern中应当含有一些有效的字符序列。例如:

ly或yy     表示用2位数字输出年份;

yyyy       表示用4位数字输出年份。

lM 或MM  表示用2为数字或文本输出月份,如果想用汉字输出月份,pattern中应连续包含至少3个M,如:MMM。

ld 或dd     表示用2位数字输出日。

lH或HH      表示用两位数字输出小时。

lm或mm      表示用两位数字输出分。

ls或ss      表示用两位数字输出秒。

l E         表示用字符串输出星期。

3.Calendar类

Calendar类在java.util包中。使用Calendar类的static方法getInstance()可以初始化一个日历对象,如:

Calendar  calendar= Calendar.getInstance();

然后,calendar对象可以调用方法:

public final void set(int year,int month,int date)

public final void set(int year,int month,int date,int hour,int minute)

public final void set(int year,int month, int date, int hour, int minute,int second)

将日历翻到任何一个时间,当参数year取负数时表示公元前。

calendar对象调用方法:

public int get(int field)

可以获取有关年份、月份、小时、星期等信息,参数field的有效值由Calendar的静态常量指定,例如:

calendar.get(Calendar.MONTH);

返回一个整数,如果该整数是0表示当前日历是在一月,该整数是1表示当前日历是在二月等。

日历对象调用

public long getTimeInMillis()

可以将时间表示为毫秒。

2.实现日期对话框,点击左侧日期,出现弹出框选择日期,右侧同理可得

activity_main.xml不变

添加以下代码即可

dtLeft.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

final Calendar cd = Calendar.getInstance();
Date date = new Date();
cd.setTime(date);

DatePickerDialog dp = new DatePickerDialog(MainActivity.this,
new OnDateSetListener() {

boolean left = false;

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

if (left == true) {

return;
} else {

left = true;

String dateStr = year + "-"
+ adjustMonthDay(monthOfYear + 1)
+ "-" + adjustMonthDay(dayOfMonth);

dateLeft = dateStr;
dtLeft.setText("从" + dateLeft);
}
}
}, cd.get(Calendar.YEAR), cd.get(Calendar.MONTH), cd
.get(Calendar.DAY_OF_MONTH));
dp.show();
}
});
}

public static String adjustMonthDay(int number) {

if (number < 10) {

return "0" + number;
}
return "" + number;
}

3.实现点击左侧箭头图标,日期变为向前一天,在原代码中添加以下代码,右侧同理,变为+1即可

btLeft.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
Date oldDate = df.parse(dateLeft);

Calendar calendar = Calendar.getInstance();
calendar.setTime(oldDate);
calendar.add(Calendar.DATE, -1);

dateLeft = df.format(calendar.getTime());
dtLeft.setText("从" + dateLeft);

} catch (ParseException e) {

e.printStackTrace();
}
}
});

Data Calendar的更多相关文章

  1. Properties文件,Data,Calendar类的使用

    package cn.hncu.day9; import java.io.FileInputStream;import java.io.FileNotFoundException;import jav ...

  2. 求大神帮解答calendar日期插件的问题

    小颖最近公司的项目里用了一款日期插件  calendar.js  但是在用的过程中遇到了难题,就是当日期只需要选择具体的月份就可以了,不需要再选具体日期时,小颖解决不了,只能让它默认显示出月份,但是月 ...

  3. 被逼着写的jquery工作日管理日历插件

    因为工作原因,在我刚进入新公司之后,立马要求让我做一个jquery的插件demo.我的天,我面试的可是.net工程师啊.虽然以前接触过js,jquery,但也只是接触过一丢丢啊,没办法,只好硬着头皮上 ...

  4. 日历插件FullCalendar应用:(二)数据增删改

    接上一篇 日历插件FullCalendar应用:(一)数据展现. 这一篇主要讲使用fullcalendar插件如何做数据的增删改,用到了art.dialog web对话框组件,上一篇用到的webFor ...

  5. android/java 根据当前时间判断股票交易状态(未开盘 交易中 休市中 已收盘)

    /** * @param data yyyy-MM-dd HH:mm:ss 时间 * @return 未开盘 交易中 休市中 已收盘 */ public static String getSotckS ...

  6. android常见问题(一)

    一:文本的颜色选择器: 在res目录下面创建color文件夹,在color文件夹下面创建font_style_colors.xml文件<?xml version="1.0" ...

  7. TWaver初学实战——如何在TWaver属性表中添加日历控件?

    在日期输入框中添加日历控件,是一种非常流行和实用的做法.临渊羡鱼不如退而写代码,今天就看看在TWaver中是如何实现的.   资源准备   TWaver的在线使用文档中,就有TWaver Proper ...

  8. FullCalendar 的学习笔记(二)

    下面是一个.NET webForm的具体列子 注意引用了artDialog 以及异步请求数据的json格式字符串 <html xmlns="http://www.w3.org/1999 ...

  9. 华为上机题汇总----java

        以下华为上机题目都是网上整理得到的,代码都是自己调试过的,由于网上java答案较少,欢迎大家批评指正,也希望对准备华为上机的童鞋们有一点点帮助.在练习的过程中成长,加油!~~  第1题:输入字 ...

随机推荐

  1. Linux&C open creat read write lseek 函数用法总结

    一:五个函数的参数以及返回值. 函数                                 参数                      返回值     open (文件名,打开方式以及读 ...

  2. 2020美亚团体—Daniel篇

    Daniel的桌上计算机的哈希值(SHA-256)是甚么? 通过取证大师计算 SHA-256值为 07DD40CF28603F421F3A09CD38F1C8AA40A2AC4BFB46ECF8299 ...

  3. 计算机网络-3-5-以太网MAC层及交换机

    MAC层的硬件地址 在局域网中,硬件地址又称为物理地址或者MAC地址(因为这种地址用在MAC帧中) IEEE 802标准为局域网规定了一种48位(6字节)的全球地址,固化在适配器的ROM中. 如果计算 ...

  4. 中文NER的那些事儿5. Transformer相对位置编码&TENER代码实现

    这一章我们主要关注transformer在序列标注任务上的应用,作为2017年后最热的模型结构之一,在序列标注任务上原生transformer的表现并不尽如人意,效果比bilstm还要差不少,这背后有 ...

  5. python实现模板匹配

    目录: (一)原理 (二)代码实现和几种常见的模板匹配算法 正文: (一)原理 在待检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大. 作用有局限性, ...

  6. [loj150]挑战多项式

    以NTT为运算基础,即默认支持在$o(n\log n)$的时间内多项式乘法 二次剩余:称$n$为模$p$意义下的二次剩余,当且仅当存在$x$使得$x^{2}\equiv n(mod\ p)$ 当$p$ ...

  7. [bzoj1263]整数划分

    观察样例,令f(n)表示n拆分的答案,猜想$f(n)=3f(n-3)$,当$n\le 4$时$f(n)=n$取3的原因是因为对于给定的$x+y$,当$4<x+y$,显然有$3^{x+y-3}$最 ...

  8. [NOI 2014]起床困难综合症[二进制]

    背景 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了该病的发病原因 ...

  9. SA 复习笔记

    大家好,由于蒟蒻 tzc 最近被动态点分治这个学也学不会的毒瘤玩意儿虐得不轻,所以就准备换换脑筋来 Van 同样学也学不会的后缀数组了. 考虑一个非常经典的问题:[模板]后缀排序. 一些定义(very ...

  10. 从 [P4240 毒瘤之神的考验] 谈 OI 中的美学

    感觉这题真的特别有意思,涉及了 OI 中很多非常有意思.非常美的手法,比如--平衡两部分的时间复杂度.\(n \ln n\) 的那个 Trick等等,真的一种暴力的美学. 题目大意: 多组询问,求 \ ...