java获取最近6个月时间,包含当月时间
时间: 2023-07-18 16:27:14 浏览: 65
如果您需要获取包含当前月份的最近6个月时间,可以将循环中的i的初始值改为-1,并在循环结束后添加当前月份的日期。以下是修改后的代码示例:
```java
Calendar calendar = Calendar.getInstance();
List<String> lastSixMonths = new ArrayList<String>();
for (int i = -1; i < 5; i++) {
calendar.add(Calendar.MONTH, -1);
Date date = calendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String formattedDate = sdf.format(date);
lastSixMonths.add(formattedDate);
}
// 添加当前月份
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String formattedDate = sdf.format(new Date());
lastSixMonths.add(formattedDate);
```
此代码将创建一个Calendar实例,并使用add方法从当前日期开始向前推6个月,包括当前月份。然后,使用SimpleDateFormat格式化日期,并将其添加到字符串列表中。最终,您将得到一个包含最近6个月的日期,包括当前月份的字符串列表。
相关问题
帮我用java写一个对时间操作的工具类,包含丰富的常用方法
好的,以下是一个Java时间操作的工具类,包含常用的方法:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class TimeUtils {
/**
* 获取当前时间戳(单位:秒)
*/
public static long getCurrentTimestamp() {
return System.currentTimeMillis() / 1000;
}
/**
* 将时间戳转换为Date类型
*
* @param timestamp 时间戳(单位:秒)
*/
public static Date timestampToDate(long timestamp) {
return new Date(timestamp * 1000);
}
/**
* 将Date类型转换为时间戳(单位:秒)
*
* @param date Date类型的时间
*/
public static long dateToTimestamp(Date date) {
return date.getTime() / 1000;
}
/**
* 将时间戳转换为指定格式的时间字符串
*
* @param timestamp 时间戳(单位:秒)
* @param pattern 时间格式,例如:"yyyy-MM-dd HH:mm:ss"
*/
public static String timestampToString(long timestamp, String pattern) {
Date date = new Date(timestamp * 1000);
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(date);
}
/**
* 将指定格式的时间字符串转换为Date类型
*
* @param time 时间字符串
* @param pattern 时间格式,例如:"yyyy-MM-dd HH:mm:ss"
*/
public static Date stringToDate(String time, String pattern) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.parse(time);
}
/**
* 获取指定时间的年份
*
* @param date 时间
*/
public static int getYear(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}
/**
* 获取指定时间的月份
*
* @param date 时间
*/
public static int getMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH) + 1;
}
/**
* 获取指定时间的日期
*
* @param date 时间
*/
public static int getDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DAY_OF_MONTH);
}
/**
* 获取指定时间的小时数(24小时制)
*
* @param date 时间
*/
public static int getHour(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.HOUR_OF_DAY);
}
/**
* 获取指定时间的分钟数
*
* @param date 时间
*/
public static int getMinute(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MINUTE);
}
/**
* 获取指定时间的秒数
*
* @param date 时间
*/
public static int getSecond(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.SECOND);
}
/**
* 获取指定时间的星期几(1表示星期日,2表示星期一,以此类推)
*
* @param date 时间
*/
public static int getWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DAY_OF_WEEK);
}
/**
* 获取指定时间的当月第一天
*
* @param date 时间
*/
public static Date getFirstDayOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
/**
* 获取指定时间的当月最后一天
*
* @param date 时间
*/
public static Date getLastDayOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar.getTime();
}
}
```
以上是一个简单的时间操作工具类,包含了常用的时间转换、获取时间信息等方法,可以根据自己的需求进行扩展和修改。
java时间操作 LocalDate
Java中的LocalDate类是用来表示日期的类,与java.util.Date类略有不同,它只包含日期,没有时间。可以使用LocalDate类进行各种日期操作。例如,可以使用以下方法获取年份、月份、日期、星期几等信息:
- `LocalDate.now().getYear()`:获取当前年份。
- `LocalDate.now().getMonthValue()`:获取当前月份的数值表示,从1开始。
- `LocalDate.now().getMonth()`:获取当前月份的英文表示。
- `LocalDate.now().getDayOfMonth()`:获取当前日期,从1开始。
- `LocalDate.now().getDayOfYear()`:获取当前日期在当年中的第几天,从1开始。
- `LocalDate.now().getDayOfWeek()`:获取当前星期几。
- `LocalDate.now().lengthOfYear()`:获取当年的天数。
- `LocalDate.now().lengthOfMonth()`:获取当月的天数。
- `LocalDate.now().toEpochDay()`:获取当前日期与时间纪元(1970年1月1日)相差的天数,负数表示在时间纪元之前多少天。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Java8时间类LocalDate常用操作](https://blog.csdn.net/weixin_42130889/article/details/114524861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Java LocalDate](https://blog.csdn.net/qq_43308246/article/details/126142689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]