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
原创粉丝点击