Java从入门到实战之(23)时间处理之练习
发布日期:2021-05-14 00:18:14 浏览次数:19 分类:博客文章

本文共 7701 字,大约阅读时间需要 25 分钟。

1、格式化时间(SimpleDateFormat)

如何使用 SimpleDateFormat 类的 format(date) 方法来格式化时间?

package Java_Learn.File;import java.text.SimpleDateFormat;import java.util.Date;public class Main1 {    public static void main(String[] args) {        Date date = new Date();        String strDateFormat = "yyyy-MM-dd HH:mm:ss";        String msg="当前时间是:";        formatTime(msg,date,strDateFormat);    }    private static void formatTime(String msg,Date date,String strDateFormat)    {        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(strDateFormat);        System.out.println(msg+simpleDateFormat.format(date));    }}

结果:

"C:\Program Files\Java\jdk1.8.0_221\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=52237:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_221\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\rt.jar;C:\app\WorkSpace\target\classes;C:\Program Files (x86)\scala\lib\scala-actors-2.11.0.jar;C:\Program Files (x86)\scala\lib\scala-actors-migration_2.11-1.1.0.jar;C:\Program Files (x86)\scala\lib\scala-library.jar;C:\Program Files (x86)\scala\lib\scala-parser-combinators_2.11-1.0.1.jar;C:\Program Files (x86)\scala\lib\scala-reflect.jar;C:\Program Files (x86)\scala\lib\scala-swing_2.11-1.0.1.jar;C:\Program Files (x86)\scala\lib\scala-xml_2.11-1.0.1.jar;C:\repository\org\scala-lang\scala-library\2.11.0\scala-library-2.11.0.jar" Java_Learn.File.Main1当前时间是:2020-10-26 11:42:24Process finished with exit code 0

2、当前时间

如何获取当前时间?

package Java_Learn.File;import java.text.SimpleDateFormat;import java.util.Date;public class Main1 {    public static void main(String[] args) {        Date date = new Date();        String strDateFormat = "yyyy-MM-dd HH:mm:ss";        String msg="当前时间是:";        formatTime(msg,date,strDateFormat);        formatTime1(msg,date,strDateFormat);    }    private static void formatTime(String msg,Date date,String strDateFormat)    {        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(strDateFormat);        System.out.println(msg+simpleDateFormat.format(date));    }    private static void formatTime1(String msg,Date date,String strDateFormat)    {        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(strDateFormat);        simpleDateFormat.applyPattern(strDateFormat);// a为am/pm的标记        System.out.println(msg+simpleDateFormat.format(date));    }}

结果:

"C:\Program Files\Java\jdk1.8.0_221\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=52284:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_221\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\rt.jar;C:\app\WorkSpace\target\classes;C:\Program Files (x86)\scala\lib\scala-actors-2.11.0.jar;C:\Program Files (x86)\scala\lib\scala-actors-migration_2.11-1.1.0.jar;C:\Program Files (x86)\scala\lib\scala-library.jar;C:\Program Files (x86)\scala\lib\scala-parser-combinators_2.11-1.0.1.jar;C:\Program Files (x86)\scala\lib\scala-reflect.jar;C:\Program Files (x86)\scala\lib\scala-swing_2.11-1.0.1.jar;C:\Program Files (x86)\scala\lib\scala-xml_2.11-1.0.1.jar;C:\repository\org\scala-lang\scala-library\2.11.0\scala-library-2.11.0.jar" Java_Learn.File.Main1当前时间是:2020-10-26 11:44:53当前时间是:2020-10-26 11:44:53Process finished with exit code 0

3、年、月、日等时间的处理

如何获取年、月、日等时间格式?

import java.util.Calendar; public class Main {    public static void main(String[] args) {        Calendar cal = Calendar.getInstance();        int day = cal.get(Calendar.DATE);        int month = cal.get(Calendar.MONTH) + 1;        int year = cal.get(Calendar.YEAR);        int dow = cal.get(Calendar.DAY_OF_WEEK);        int dom = cal.get(Calendar.DAY_OF_MONTH);        int doy = cal.get(Calendar.DAY_OF_YEAR);         System.out.println("当期时间: " + cal.getTime());        System.out.println("日期: " + day);        System.out.println("月份: " + month);        System.out.println("年份: " + year);        System.out.println("一周的第几天: " + dow);  // 星期日为一周的第一天输出为 1,星期一输出为 2,以此类推        System.out.println("一月中的第几天: " + dom);        System.out.println("一年的第几天: " + doy);    }}

结果:

当期时间: Fri Mar 27 21:44:15 CST 2015日期: 27月份: 3年份: 2015一周的第几天: 6一月中的第几天: 27一年的第几天: 86

4、时间戳转换成时间

如何使用 SimpleDateFormat 类的 format() 方法将时间戳转换成时间。

日期和时间模式(注意大小写,代表的含义是不同的):

  • yyyy:年
  • MM:月
  • dd:日
  • hh:1~12小时制(1-12)
  • HH:24小时制(0-23)
  • mm:分
  • ss:秒
  • S:毫秒
  • E:星期几
  • D:一年中的第几天
  • F:一月中的第几个星期(会把这个月总共过的天数除以7)
  • w:一年中的第几个星期
  • W:一月中的第几星期(会根据实际情况来算)
  • a:上下午标识
  • k:和HH差不多,表示一天24小时制(1-24)
  • K:和hh差不多,表示一天12小时制(0-11)
  • z:表示时区
import java.text.SimpleDateFormat;import java.util.Date; public class Main{    public static void main(String[] args){        Long timeStamp = System.currentTimeMillis();  //获取当前时间戳        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String sd = sdf.format(new Date(Long.parseLong(String.valueOf(timeStamp))));      // 时间戳转换成时间        System.out.println("格式化结果:" + sd);         SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒");        String sd2 = sdf2.format(new Date(Long.parseLong(String.valueOf(timeStamp))));        System.out.println("格式化结果:" + sd2);   }}

结果:

格式化结果:2018-07-10 12:17:34格式化结果:2018 年 07 月 10 日 12 时 17 分 34 秒

 

上一篇:Java从入门到实战之(24)Java 方法处理之练习
下一篇:Java从入门到实战之(22)数组之练习

发表评论

最新留言

很好
[***.229.124.182]2025年04月29日 01时42分47秒