以前的博客“Java中的日期常用格式化”提到的都是当前日期的格式化,这篇博客写指定日期的格式化。当然类似于前一篇博客的内容就不多写了,写一些不一样的,如一个月的总天数,两个日期之间相隔的天数,字符串类型日期的格式化等。
废话不多说,上代码:
public class TimeTest { /** * 获取指定日期的年份 * @throws ParseException * **/ public static Integer year(String strDate){ int year = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = new GregorianCalendar(); try{ Date date1 = sdf.parse(strDate); calendar.setTime(date1); //放入日期 year = calendar.get(Calendar.YEAR); }catch(ParseException e){ e.printStackTrace(); } return year; } /** * 获取指定日期的月份 * @throws ParseException * **/ public static Integer month(String strDate){ int month = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = new GregorianCalendar(); try{ Date date1 = sdf.parse(strDate); calendar.setTime(date1); //放入日期 month = calendar.get(Calendar.MONTH)+1; }catch(ParseException e){ e.printStackTrace(); } return month; } /** * 获取指定日期的天 * @throws ParseException * **/ public static Integer day(String strDate){ int day = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = new GregorianCalendar(); try{ Date date1 = sdf.parse(strDate); calendar.setTime(date1); //放入日期 day = calendar.get(Calendar.DAY_OF_MONTH); }catch(ParseException e){ e.printStackTrace(); } return day; } /** * 获取指定日期所在月份的天数 * @throws ParseException * **/ public static Integer getActualMaximum(String strDate){ int max = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); Calendar calendar = new GregorianCalendar(); try{ Date date1 = sdf.parse(strDate); calendar.setTime(date1); //放入日期 max = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); }catch(ParseException e){ e.printStackTrace(); } return max; } /** * 将字符串类型的日期进行格式化,返回格式化之后字符串类型的日期 * @param String strDate:字符串格式的日期 * @return 字符串类型格式化后的日期,如:2016.06.05 * **/ public static String formatStringDateToYYYYMMDD(String strDate){ if (strDate == null) return ""; SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");// 实例化模板对象 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy.MM.dd");// 实例化模板对象 Date d = null ; try{ d = sdf1.parse(strDate) ; // 将给定的字符串中的日期提取出来 }catch(Exception e){ // 如果提供的字符串格式有错误,则进行异常处理 e.printStackTrace() ;// 打印异常信息 e.printStackTrace(); } return sdf2.format(d);//按照规定格式进行格式化 } /** * 返回两个日期之间相差的天数,当date2>=date1时返回正数,否则返回负数 * @param date1:String类型 时间1 * @param date2:String类型 时间2 * @return days:返回date1和date2之间相差的天数 * */ public static int dateDiff(String date1, String date2){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar1 = new GregorianCalendar(); Calendar calendar2 = new GregorianCalendar(); try{ calendar1.setTime(sdf.parse(date1)); calendar2.setTime(sdf.parse(date2)); }catch(ParseException e){ e.printStackTrace(); } //设置时间为0时 calendar1.set(Calendar.HOUR_OF_DAY, 0); calendar1.set(Calendar.MINUTE, 0); calendar1.set(Calendar.SECOND, 0); calendar2.set(Calendar.HOUR_OF_DAY, 0); calendar2.set(Calendar.MINUTE, 0); calendar2.set(Calendar.SECOND, 0); //得到两个日期相差的天数 int days = ((int)(calendar2.getTime().getTime()/1000)-(int)(calendar1.getTime().getTime()/1000))/3600/24; return days; } /** * 返回指定年份月份的最后一天的时间 * @param strDate:要返回该月最后一天的字符串日期,必须包括年月 * */ public static String getLastDayEndForMonth(String strDate){ String time=""; int lastDay = getActualMaximum(strDate);//获取日期的所在月份的天数 int year = year(strDate);//获取年份 int month = month(strDate);//获取月份 time = year+"-"+month+"-"+lastDay+" 23:59:59"; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try{ date = df.parse(time); }catch(ParseException e){ e.printStackTrace(); } return df.format(date); } /** * 返回指定年份月份的第一天的时间 * @param strDate:要返回该月最后一天的字符串日期,必须包括年月 * */ public static String getFirstDayEndForMonth(String strDate){ String time=""; int year = year(strDate);//获取年份 int month = month(strDate);//获取月份 time = year+"-"+month+"-01 00:00:00.0"; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try{ date = df.parse(time); }catch(ParseException e){ e.printStackTrace(); } return df.format(date); } public static void main(String[] args) throws ParseException { System.out.println("年份:"+year("2016-06-16 00:00:00.000")); System.out.println("月份:"+month("2016-06-16 00:00:00.000")); System.out.println("天:"+day("2016-06-16 00:00:00.000")); System.out.println("6月的总天数:"+getActualMaximum("2016-06-16 00:00:00.000")); System.out.println("字符串类型的日期格式化:"+formatStringDateToYYYYMMDD("2016-06-16 00:00:00.000")); System.out.println("获取两个日期之间相差的天数:"+dateDiff("2016-06-16 00:00:00.000","2015-03-21 00:00:00.000")); System.out.println("指定年份月份的最后一天的时间:"+getLastDayEndForMonth("2016-06-16 00:00:00.000")); System.out.println("指定年份月份的第一天的时间:"+getFirstDayEndForMonth("2016-03-02 00:00:00.000")); } }
相关推荐
本文将深入探讨Java中日期格式化的常用方法,主要关注`SimpleDateFormat`和`java.time`包下的`DateTimeFormatter`。 首先,`SimpleDateFormat`是旧版日期时间API的一部分,尽管在Java 8之后被推荐使用新的`java....
Java日期格式化是Java开发中常见的一项任务,它涉及到日期和时间的处理,尤其是在数据输入输出、用户界面显示以及数据库交互等场景。Java提供了一系列的类来帮助我们完成日期和时间的格式化工作,其中最常用的包括`...
为了方便开发者,Java提供了多种方式来格式化日期,其中最常用的是`java.text.SimpleDateFormat`类。这个工具类允许我们自定义日期和时间的显示格式,避免了重复编写相同的代码。下面将详细介绍如何使用`...
Java数据格式化是Java编程语言中处理数据呈现和解析的核心技术之一,主要涉及对文本、日期、数值等数据类型的格式化处理,以适应不同的显示需求和国际化标准。本文将深入探讨Java数据格式化的关键概念、类和方法,...
java日期格式化工具类,一些常用的日期操作方法
在`DateHelper.java`这个自定义的日期辅助类中,通常会包含一些便捷的方法,例如获取当前日期,格式化日期,进行日期计算(如加上或减去指定天数、小时数等),或者转换`java.util.Date`和`java.time`包之间的日期...
本文将重点讲解Java日期的常用操作方法,主要基于提供的`JavaDateUtil.java`文件,假设这是一个自定义的日期工具类。 首先,我们来了解`java.util.Date`。这个类在早期的Java版本中被广泛使用,但它的API设计并不...
总结起来,Java中对日期的处理涵盖了多种场景,从基本的日期对象创建、格式化、比较,到复杂的日期时间计算和时区处理。`DateUtil.java`可能封装了这些常见操作,方便在项目中复用。了解并熟练掌握这些知识点,对于...
Java中的日期和时间处理是程序开发中常见的任务,涉及到各种日期和时间的计算、格式化以及比较等操作。在Java中,主要使用`java.util.Date`、`java.util.Calendar`和`java.text.SimpleDateFormat`这三个核心类来处理...
在 Java 中处理日期时,我们需要导入一些必要的包来支持日期时间的格式化、解析等功能。示例代码中导入了如下几个关键的包: - `java.text.ParsePosition`:用于跟踪解析过程中的位置。 - `java.text....
`DateUtil`工具类通常包含了对日期进行格式化、解析、比较等常用功能,使得在Android项目中处理日期变得更加便捷。 在Java中,日期对象主要由`java.util.Date`类表示,而日期格式化则依赖于`java.text....
### Java字符串格式化String.format()详解 #### 一、引言 `String.format()` 方法是JDK 1.5引入的新特性,它提供了一种灵活且强大的方式来格式化字符串。这种方法类似于C语言中的`printf`函数,允许开发者通过指定...
标签“java日期控件”强调了这个主题关注的是Java中与日期选择相关的控件,不仅仅是Swing,也可能是JavaFX或其他库提供的日期选择组件。但在这里,我们主要讨论的是Swing环境下的实现。 在压缩包的"swing 时间控件...
#### 三、Java日期格式化输出 在处理日期时间时,经常需要将日期对象转换为特定格式的字符串,或者从字符串解析出日期对象。 1. **默认日期格式化**:通过 `java.text.DateFormat` 类可以获取到默认的日期格式化器...
Java 日期时间格式化操作是 Java 开发中最常用的操作之一。DateUtils 是一个工具类,提供了多种日期时间格式化操作的方法。在这里,我们将对 DateUtils 的整理进行详细介绍,并总结了 Java 日期格式化的操作。 ...
Java中的日期处理涉及到多个类,包括Date、Calendar、GregorianCalendar以及日期格式化类如DateFormat和SimpleDateFormat。这些类主要用于管理、操作和格式化日期和时间。以下是对这些类的详细说明: 1. **Date类**...
- **日期格式化**:利用SimpleDateFormat或DateTimeFormatter类对日期进行格式化处理。 - **Random类**:生成随机数,可用于模拟各种随机事件。 **示例代码**: ```java import java.text.SimpleDateFormat; import...
### Java里日期的用法汇总 #### 一、获取当前日期与时间 ...以上就是关于Java中日期使用的总结,涵盖了日期的获取、格式化、加减操作以及其他相关操作。希望这些知识点能够帮助你更好地理解和使用Java中的日期功能。
在Java中,SimpleDateFormat是一个非常常用的类,用来对日期字符串进行解析和格式化输出。但是,如果使用不小心会导致非常微妙和难以调试的问题,因为DateFormat和SimpleDateFormat类不是线程安全的。在多线程环境下...
在Java开发中,DateChooser控件可以使用第三方库来实现,比如JCalendar库中的JDateChooser,它是一个常用的日期选择组件,提供了丰富的功能和良好的兼容性。开发者只需将JCalendar库导入项目,然后在需要的地方实例...