Java中Date类和Calendar类
来源:互联网 发布:和其正 知乎 编辑:程序博客网 时间:2024/05/17 04:57
前言
写后台程序的时候,经常需要存储当前服务器的时间戳,使用时间戳也很方便,客户端和服务器端都可以根据自己的需求做各自的转换
在php里,获取当前时间戳使用time()函数,格式化输出通过Date()函数即可,Java里相对复杂一些,这里简单介绍一下
Java语言中的Calendar,Date,DateFormat组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分,所有的开发者都应该能计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象
获取UNIX时间戳
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期的处理。这里简单介绍一下用Date类如何获取当前时间戳
使用系统的当前日期和时间创建一个日期对象并返回一个长整数,这个时间通常称为Java 虚拟机(JVM)主机环境的系统时间,单位是毫秒,因此需要除以1000转换成UNIX时间戳
import java.util.Date;public class TimeTest { public static void main(String args[]) { Date time = new Date(); System.out.println(time.getTime() / 1000); // 1387258105 System.out.println(time.toString()); // Tue Dec 17 13:28:25 CST 2013 }}
格式化日期
php里可以使用Date()函数定制日期数据的格式用于呈现,Java里需要调用SimpleDateFormat类,例如将当前时间格式化输出:
import java.text.SimpleDateFormat;import java.util.Date;public class TimeTest { public static void main(String args[]) { Date time = new Date(); System.out.println(time.getTime() / 1000); // 1387260201 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); // 2013-03-17 14:03:21 String str = sdf.format(time); System.out.println(str); }}
将文本解析成日期对象
给定了格式化的时间字符串,例如“2013-12-17 14:05:59”,需要将其转换成Date对象,便于获取时间戳获取进行其它格式化操作,可以继续调用SimpleDateFormat类
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class TimeTest { public static void main(String args[]) { String text = "2013-12-17 14:05:59"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date time = sdf.parse(text); System.out.println(time.getTime() / 1000); } catch(ParseException e) { System.out.println(e.getMessage()); } }}
获取日期的特定部分
import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class TimeTest { public static void main(String args[]) { Date date = new Date(); GregorianCalendar gcalendar = new GregorianCalendar(); gcalendar.setTime(date); int year = gcalendar.get(Calendar.YEAR); int month = gcalendar.get(Calendar.MONTH); int day = gcalendar.get(Calendar.DAY_OF_MONTH); int hour = gcalendar.get(Calendar.HOUR_OF_DAY); int minute = gcalendar.get(Calendar.MINUTE); int second = gcalendar.get(Calendar.MINUTE); System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second); }}
参考资料
1、http://www.51cto.com/specbook/24/6720.htm
1 0
- Java中Date类和Calendar类
- 如何使用java中Date类和Calendar类
- Java中Date和Calendar类的使用方法
- 【java中时间类Date和Calendar的使用】
- Java中Date和Calendar类的简单使用
- Date和Calendar类
- java date类和calendar类
- Java中的Date类和Calendar类
- Java的Date类和Calendar类
- java中的Date类和Calendar类
- JAVA的Date类和Calendar类
- 使用Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- USB基本问题及答案
- J2EE程序的性能优化技巧
- hadoop1.2.1 C 编程环境配置
- MySQL服务器性能剖析
- IOS 之 网络通信Web Servic
- Java中Date类和Calendar类
- 领域模型驱动应用心得....
- 在ubuntu下,切换用户
- boadcom x86_64 431*系列无线网卡驱动在linux 3.10以上内核编译问题的解决
- 李维的博客
- 逆波兰表示法Reverse Polish Notation
- 2D小游戏——泡泡球游戏
- Zookeeper总结
- Linux 内核/sys 文件系统介绍