系列文章目录
记录一下 日期周转换具体时间的使用
一、使用步骤
1.获取指定周的第一天
代码如下(示例):
private final static SimpleDateFormat FT = new SimpleDateFormat("yyyy-MM-dd");
/**
* 获取指定周的第一天
*
* @param year 年份
* @param week 年的第几周
* @return 返回周的第一天
*/
public static String getFirstDayOfWeek(int year, int week) {
if (week > 1) {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setMinimalDaysInFirstWeek(1);
cal.setWeekDate(year, week, Calendar.MONDAY);
return FT.format(cal.getTime());
} else {
Calendar cal = Calendar.getInstance();
cal.set(year, 0, 1);
return FT.format(cal.getTime());
}
}
2.获取指定周的最后一天
代码如下(示例):
/**
* 获取指定周的最后一天
*
* @param year 年份
* @param week 年的第几周
* @param format 返回格式
* @return 返回周的最后一天
*/
public static String getLastDayOfWeek(int year, int week, String format) {
// 说明是年的最后一天
if (week * 7 >= 365) {
Calendar cal = Calendar.getInstance();
cal.set(year, 11, 31);
if (StringUtils.isNotBlank(format)) {
return new SimpleDateFormat(format).format(cal.getTime());
}
return FT.format(cal.getTime());
} else {
Calendar cal = Calendar.getInstance();
// 设置年份
cal.set(Calendar.YEAR, year);
// 设置周
cal.set(Calendar.WEEK_OF_YEAR, week);
// 设置该周第一天为星期一
cal.setFirstDayOfWeek(Calendar.MONDAY);
// 设置最后一天是星期日
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek() + 6);
if (StringUtils.isNotBlank(format)) {
return new SimpleDateFormat(format).format(cal.getTime());
}
return FT.format(cal.getTime());
}
}
3.解决周 一位数前面不带 0 问题
代码如下(示例):
/**
* 解决周 一位数前面不带 0 问题
*
* @param time 格式:2023-2
* @return
*/
public static String makeUpZero(String time) {
String[] split = time.split("-");
if (split.length == 2) {
if (split[1].length() == 1) {
split[1] = "0" + split[1];
return split[0] + "-" + split[1];
}
}
return time;
}
总结
以上就是今天要记录的内容,整理好的可以测试使用。