SimpleDateFormat使用详解
来源:互联网 发布:通达oa精灵mac版 编辑:程序博客网 时间:2024/06/09 20:55
package cc.testsimpledateformat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;import android.app.Activity;import android.os.Bundle;/** * SimpleDateFormat * 一个与语言环境相关的格式化日期和分析日期的工具类。 * 利用该类可以将日期转换成文本,或者将文本转换成日期。 * * 在使用SimpleDateFormat时需要指定一个需要的格式(pattern)来格式日期(Date). * 在此请注意几个字母大小写的差异: * * 大写的H为24小时制表示一天中的小时数(0-23) * 小写的h为12小时制表示一天中的小时数(1-12) * * 大写的M表示年中的月份 * 小写的m表示小时中的分钟数 * * 大写的S表示毫秒数 * 小写的s表示秒数 * * 所以最常用的24小时制的具体日期的pattern为: * yyyy-MM-dd HH:mm:ss * * * SimpleDateFormat中format()方法小结: * 1 format()方法的作用是将日期(Date)转换为文本 * 2 format()方法的输入参数是一个Date * * * SimpleDateFormat中parse()方法小结: * 1 parse()方法的作用是将文本转换为日期(Date) * 2 parse()方法的输入参数是一个文本,比如String * * * 原创作者: * 谷哥的小弟 * * 博客地址: * http://blog.csdn.net/lfdfhl * */public class MainActivity extends Activity {private String time1="2016-01-02 00:00:00";private String time2="2013-09-21 00:00:00";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);test1();test2();test3();test4();test5();getTimeDifference(time1,time2); compareTime(time1,time2); }/** * 将日期转换为文本 * */private void test1(){try {Date date=new Date();SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());String time=simpleDateFormat.format(date);System.out.println("----> 格式化后的日期为: "+time);System.out.println("----------------------------------");} catch (Exception e) {}}/** * 将文本转换为日期 * * 请注意: * 文本的格式应该与SimpleDateFormat中的pattern保持一致,否则导致异常 * 比如: * 2008年08月18日 20:07:33 对应于yyyy年MM月dd日 HH:mm:ss * 2008-08-18 20:07:33 对应于yyyy-MM-dd HH:mm:ss */private void test2() {try {String day = "2008年08月18日 20:07:33";SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss", Locale.getDefault());Date date = simpleDateFormat.parse(day);System.out.println("----> 格式化后的日期为: "+date);day = "2008-08-18 20:07:33";simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());date = simpleDateFormat.parse(day);System.out.println("----> 格式化后的日期为: "+date);day = "20131227085009";simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault());date = simpleDateFormat.parse(day);simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); String time = simpleDateFormat.format(date); System.out.println("----> 时间文本为: "+time);System.out.println("----------------------------------");} catch (Exception e) {System.out.println("----> Exception: "+e.toString());}}/** * 将时间戳转换成时间 * */private void test3(){long timeStamp=System.currentTimeMillis();SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); Date date=new Date(timeStamp); String time = simpleDateFormat.format(date); System.out.println("----> 将时间戳转换为字符串: "+time);System.out.println("----------------------------------");}/** * 将时间转换成时间戳 * */private void test4(){try {long timeStamp=System.currentTimeMillis();SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); Date date=new Date(timeStamp); String time = simpleDateFormat.format(date); System.out.println("----> 当前时间戳为: "+timeStamp+" ,其字符串为:"+time); Date parsedDate=simpleDateFormat.parse(time); long ts=parsedDate.getTime(); System.out.println("----> 将字符串转换为时间戳: "+ts);System.out.println("----------------------------------");} catch (Exception e) {}}/** * java时间戳与unix时间戳的关系 * * java中生成的时间戳精确到毫秒,但unix中精确到秒 * 所以两者相差1000倍 */private void test5(){long javaTimeStamp=System.currentTimeMillis();long unixTimeStamp=javaTimeStamp/1000;System.out.println("----> java时间戳: "+javaTimeStamp+" ,unix时间戳:"+unixTimeStamp);System.out.println("----------------------------------");}/** * 计算两个时间的差值 */ private void getTimeDifference(String time1,String time2) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); try { Date date1 = simpleDateFormat.parse(time1); Date date2 = simpleDateFormat.parse(time2); long difference = date1.getTime() - date2.getTime(); long days = difference / (1000 * 60 * 60 * 24); System.out.println("----> 两个时间相距:"+days+"天"); } catch (Exception e) { System.out.println("----> Exception="+e.toString()); } System.out.println("----------------------------------"); } /** * 比较两个时间的大小 */private void compareTime(String time1, String time2) {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());Calendar calendar1 = java.util.Calendar.getInstance();Calendar calendar2 = java.util.Calendar.getInstance();try {calendar1.setTime(dateFormat.parse(time1));calendar2.setTime(dateFormat.parse(time2));} catch (java.text.ParseException e) {System.out.println("----> Exception=" + e.toString());}int result = calendar1.compareTo(calendar2);if (result == 0){System.out.println("----> time1等于time2");}else if (result < 0) {System.out.println("----> time1小于time2");}else {System.out.println("----> time1大于time2");}} }
0 0
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat的使用详解
- SimpleDateFormat使用详解(转)
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- SimpleDateFormat使用详解
- 观察者模式(Observer Pattern)
- NVelocity其它使用注意
- USACO 1.1 Greedy Gift Givers (gift1)
- listview快速滑动是图片跳动的问题
- java如何处理wave格式文件?
- SimpleDateFormat使用详解
- pl/sql连接64位oracle的时候出现乱码的问题
- 指针常量,数组打印
- ubuntu 下code blocks 安装全过程 && codeblocks 快捷键 && 解决调试终端不能粘贴问题
- POJ 2075 Tangled in Cables
- 题目1157:中位数
- [转]ARM中断(二)
- 【素数】-HDU-2521-反素数
- ARM中断(三)