码迷,mamicode.com
首页 > 其他好文 > 详细

日期处理

时间:2016-08-24 12:38:16      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

官方提供了非常丰富的日期处理的API,比我下面所涉及的多得多,但实际开发中用到的只是其中部分,且基本能满足实际开发需要。

日期处理最关键的类是Calendar,负责日期的各种操作,再通过SimpleDateFormat类就可以实现日期和字符串之间的相互转换。

日期格式

日期格式的表示方式,主要在日期格式转换的时候用到(比如日期转换为字符串),这些符号的顺序并不是固定的,可以根据需要改变

比如我要显示"16-08-2016 13:50:33",这时就是dd-MM-yyyy HH:mm:ss,具体使用方式见下面的日期和字符串的转换

yyyy  MM  dd  HH  mm  ss  E  a

y:年份,一般四位,也可以写两个yy,这样就只显示年份后两位

M:月份,一般两位,可以写一个,但月份为个位数时显示个位(前面不会补0),月份两位数时会强制显示两位(比如11月份)

d:日期,一个月中的第几天

H:小时,大写的H使用的24小时制,如果是h,则为12小时制

m:分钟

s:秒

E:星期

a:上下午

Calendar

Calendar的常见API如下

// 获取一个实例
Calendar c = Calendar.getInstance();
// 设置年份
c.set(Calendar.YEAR, 2013);
// 设置月份,第二个参数可以是具体数字,但是注意月份的下标是从0开始的,0代表1月份,1代表2月份,以此类推
c.set(Calendar.MONTH, 03);
// 设置天数
c.set(Calendar.DAY_OF_MONTH, 18);

// 获取年份
int year = c.get(Calendar.YEAR);
// 获取月份,获取的是月的数值,从0开始,故需要+1
int month = c.get(Calendar.MONTH) + 1;
// 获取天数
int day = c.get(Calendar.DAY_OF_MONTH);
// 当前月份最大天数
c.getActualMaximum(Calendar.DAY_OF_MONTH);
// 修改年份,第二个参数为负表示减少
c.add(Calendar.YEAR, 2);
// 修改月份
c.add(Calendar.MONTH, 2);
// 修改天数
c.add(Calendar.DAY_OF_MONTH, 2);
        
// 转换成世界通时
Date date = c.getTime();

其他API

Date date = new Date();  // 获取当前系统时间

long l = date.getTime();  // 与1970年元旦的毫秒差

DateFormat df = DateFormat.getDateInstance(int style, Locale locale);  // 获取一个日期格式化实例,可以选择不同的时区

  style: 格式化后日期的格式,有DateFormat.LONG, DateFormat.MEDIUM或DateFormat.SHORT
  
  locale: 所在时区,比如中国为Locale.CHINA,美国为Locale.US

System.currentTimeMillis();  // 获取当前系统毫秒数,与1970年元旦之差

System.nanoTime();  // 获取纳秒值时间,一般用于计算程序执行时间差,并非与1970的时间差

字符串转日期

String timeStr = "2016-08-24 12:30:56";  // 时间字符串

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 日期格式和timeStr的格式一致才能转换,否则报错

Date date = sf.parse(timeStr);  // 转换成Date

Calendar c = Calendar.getInstance(); // 获取一个日历的实例

c.setTime(date);  // 设置为该时间

// 修改日期操作,详见上面Calendar的API

日期转字符串

Date date = new Date();  // 将当前系统时间转换为格式为yyyy-MM-dd HH:mm:ss的字符串

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  // 格式化实例

String time = sf.format(date);  // 格式化

日期处理

标签:

原文地址:http://www.cnblogs.com/windyrain/p/5778152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!