热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java中如何对日期时间进行格式化

这篇文章将为大家详细讲解有关Java中如何对日期时间进行格式化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关

这篇文章将为大家详细讲解有关Java中如何对日期时间进行格式化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Java格式化日期时间的方法

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.TimeUnit;

/**
 * ClassName: DateUtils 
 * Description:时间操作工具类  */ public class DateUtils {   private static final String[] UNIT_DESC = new String[]{"天", "小时", "分钟", "秒"};   /**    * 获得当前系统时间,格式为yyyyMMdd    *    * @return 格式化后的时间    */   public static String currentYYYYMMDD() {     return getStrByDate(new Date(), "yyyyMMdd");   }   /**    * 获得当前系统时间,格式为HHmmss    *    * @return 格式化后的时间    */   public static String currentHHMMSS() {     return getStrByDate(new Date(), "HHmmss");   }   /**    * 获得当前系统时间,格式为yyyyMMddHHmmss    *    * @return 格式化后的时间    */   public static String currentYYYYMMDDHHmmss() {     return getStrByDate(new Date(), "yyyyMMddHHmmss");   }   /**    * 根据给定的字符串如:yyyy-MM-dd HH:mm:ss,(必须是这种格式) 返回一个日期日期形式    *    * @param strDate 要抛析的字符串,且字符串的形式必须:2007-09-10 07:00:00    * @return 将字符串抛析成日期的格式返回    * @throws ParseException 解析 format 字段失败    */   public static java.util.Date getDateByStr(String strDate, String format) throws ParseException {     assert strDate != null && format != null;     SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);     return simpleDateFormat.parse(strDate);   }   /**    * 根据给定的日期,返回给定的字符串, 返回 字符串的形式是:yyyy-MM-dd HH:mm:ss    *    * @param date 要格式化的日期    * @return 将日期格式化后返回的字符串,以这中格式返回:yyyy-MM-dd HH:mm:ss    */   public static String getStrByDate(Date date, String format) {     assert date != null && format != null;     SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);     return simpleDateFormat.format(date);   }   /**    * 得到当前时间    *    * @return 当前时间    */   public static Date getDayOfMonth() {     Calendar now = Calendar.getInstance();     return now.getTime();   }   /**    * 得到每月第一天    *    * @param date 日期    * @return 日期月份的第一天    */   public static Date getFirstDayOfMonth(Date date) {     Calendar nowday = Calendar.getInstance();     nowday.setTime(date);     nowday.set(Calendar.DATE, 1);// 把日期设置为当月第一天     return nowday.getTime();   }   /**    * 得到每月最后一天    *    * @param date 日期    * @return 日期月份最后一天    */   public static Date getLastDayOfMonth(Date date) {     Calendar nowday = Calendar.getInstance();     nowday.setTime(date);     nowday.set(Calendar.DATE, 1);// 把日期设置为当月第一天     nowday.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天     return nowday.getTime();   }   /**    * 获取当前年份 格式:yyyy    *    * @param date 当前时间    * @return year    */   public static String getCurrYear(Date date) {     Calendar calendar = Calendar.getInstance();     calendar.setTime(date);     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");     Date currYear = calendar.getTime();     return String.valueOf(dateFormat.format(currYear));   }   /**    * 获取当前月份 格式:MM    *    * @param date 当前时间    * @return Date    */   public static String getCurrMonth(Date date) {     Calendar calendar = Calendar.getInstance();     calendar.setTime(date);     SimpleDateFormat dateFormat = new SimpleDateFormat("MM");     Date currMonth = calendar.getTime();     return String.valueOf(dateFormat.format(currMonth));   }   /**    * 得到此日期的最后一天    *    * @param d 日期    * @return 最后一天    */   public static Date getLastDayByDate(Date d) {     Calendar newday = Calendar.getInstance();     newday.setTime(d);     int lastday;     int month = newday.get(Calendar.MONTH);     do {       lastday = newday.get(Calendar.DAY_OF_MONTH);       newday.add(Calendar.DAY_OF_MONTH, 1);     } while (newday.get(Calendar.MONTH) == month);     newday.set(Calendar.MONTH, month);     newday.set(Calendar.DAY_OF_MONTH, lastday);     return newday.getTime();   }   /**    * 将 yyyyMMdd 的字符窜 转化成 yyyy-MM-dd    *    * @param dateString yyyyMMdd格式的日期    * @return yyyy-MM-dd格式的日期    * @throws ParseException    */   public static String formatyyyyMMdd(String dateString) throws ParseException {     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");     Date date = simpleDateFormat.parse(dateString);     SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd");     return formatStr.format(date);   }   /**    * 将 yyyyMMdd 的字符窜 转化成 yyyy-MM-dd HH:mm:ss    *    * @param dateString    * @return    * @throws ParseException    */   public static String formatyyyyMMddHHmmss(String dateString) throws ParseException {     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");     Date date = simpleDateFormat.parse(dateString);     SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");     return formatStr.format(date);   }   /**    * 获取当前年份 格式:yyyy    *    * @return Date    */   public static int getCurrYear() {     Calendar calendar = Calendar.getInstance();     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");     Date currYearFirst = calendar.getTime();     return Integer.valueOf(dateFormat.format(currYearFirst));   }   /**    * 获取当前时间前三月    *    * @return Date    */   public static Date getLastThreeMonths() {     Calendar calendar = Calendar.getInstance();     calendar.add(Calendar.MONTH, -3);     calendar.add(Calendar.DAY_OF_MONTH, 1);     return calendar.getTime();   }   /**    * 获取当前时间前一个月    *    * @return Date    */   public static Date getLastOneMonths() {     Calendar calendar = Calendar.getInstance();     calendar.add(Calendar.MONTH, -1);     calendar.add(Calendar.DAY_OF_MONTH, 1);     return calendar.getTime();   }   /**    * 获取当前时间前六个月    *    * @return Date    */   public static Date getLastSixMonths() {     Calendar calendar = Calendar.getInstance();     calendar.add(Calendar.MONTH, -6);     calendar.add(Calendar.DAY_OF_MONTH, 1);     return calendar.getTime();   }   /**    * 获取某年第一天日期    *    * @param year 年份    * @return Date    */   public static Date getCurrYearFirst(int year) {     Calendar calendar = Calendar.getInstance();     calendar.clear();     calendar.set(Calendar.YEAR, year);     return calendar.getTime();   }   /**    * 获取某年最后一天日期    *    * @param year 年份    * @return Date    */   public static Date getCurrYearLast(int year) {     Calendar calendar = Calendar.getInstance();     calendar.clear();     calendar.set(Calendar.YEAR, year);     calendar.roll(Calendar.DAY_OF_YEAR, -1);     return calendar.getTime();   }   /**    * 格式化时间    *    * @param date  时间    * @param format 格式化模板    * @return 格式化后的时间    */   public static String date2Str(Date date, String format) {     return getStrByDate(date, format);   }       /**  * 获得指定日期的前一天 yyyy-MM-dd  * @param date  * @return  */ public static String getSpecifiedDayBefore(Date date, String dateFormat){   if (date == null) return null;   Calendar c = Calendar.getInstance();   c.setTime(date);   int day=c.get(Calendar.DATE);   c.set(Calendar.DATE,day-1);   String dayBefore=new SimpleDateFormat(dateFormat).format(c.getTime());   return dayBefore; } /**  * 获得指定日期的后一天 yyyy-MM-dd  *  * @param date  * @return  */ public static String getSpecifiedDayAfter(Date date, String dateFormat) {   if (date == null) return null;   Calendar c = Calendar.getInstance();   c.setTime(date);   int day = c.get(Calendar.DATE);   c.set(Calendar.DATE, day + 1);   String dayAfter = new SimpleDateFormat(dateFormat).format(c.getTime());   return dayAfter; }   /**    * 格式化持续时间
   * 将持续时间,格式化为 xx天xx小时xx分钟xx秒 如果 "xx" 为0 自动缺省。    *    * @param seconds 持续时间,单位(秒)    * @return 格式化后的字符串    * @see TimeUnit 时间单位转换工具    * @since 1.5    */   public static String convertSeconds2Str(long seconds) {     StringBuilder sb = new StringBuilder();     long[] date = {TimeUnit.SECONDS.toDays(seconds), TimeUnit.SECONDS.toHours(seconds) % 24, TimeUnit.SECONDS.toMinutes(seconds) % 60, TimeUnit.SECONDS.toSeconds(seconds) % 60};     for (int i = 0; i < date.length; i++) {       long l = date[i];       if (l > 0) sb.append(l).append(UNIT_DESC[i]);     }     return sb.toString();   }   /**    * 格式化持续时间    * 将持续时间,格式化为 xx天xx小时xx分钟xx秒 如果 "xx" 为0 自动缺省。    *    * @param seconds 持续时间,单位(分钟)    * @return 格式化后的字符串    * @see TimeUnit 时间单位转换工具    * @since 1.5    */   public static String convertMinute2Str(long minute) {     StringBuilder sb = new StringBuilder();     long[] date = {TimeUnit.SECONDS.toHours(minute) % 24,TimeUnit.SECONDS.toMinutes(minute) % 60, TimeUnit.SECONDS.toSeconds(minute) % 60};     for (int i = 0; i < date.length; i++) {       long l = date[i];       if (l > 0) sb.append(l).append(UNIT_DESC[i]);     }     return sb.toString();   } }

关于Java中如何对日期时间进行格式化就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


推荐阅读
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
author-avatar
我所信仰的感觉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有