java获取各种时间,及格式

废话不多说直接上代码

获取几天前,几天后,当天的时间

/**
 * description: 获取时间字符串
 *
 * @param days 负数为过去,正数为未来
 * @return java.lang.String
 * @author bo
 * @date 2023/2/21 10:26 AM
*/
public static String accessTimeString(Integer days) {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  Calendar calendar = new GregorianCalendar();
  calendar.setTime(new Date());
  calendar.add(Calendar.DATE, days);
  return sdf.format(calendar.getTime());
}

获取上周日的时间

/**
 * description: 获取上周日的时间
 *
 * @return java.lang.String
 * @author bo
 * @date 2023/3/28 17:49
*/
public static String getLastSunDayTime() {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  Calendar calendarEnd = Calendar.getInstance();
  calendarEnd.setTime(new Date());
  // 判断当前日期是否为周末,因为周末是本周第一天,如果不向后推迟一天的到的将是下周一的零点,而不是本周周一零点
  if (1 == calendarEnd.get(Calendar.DAY_OF_WEEK)) {
    calendarEnd.add(Calendar.DATE, -1);
  }
  calendarEnd.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

  return sdf.format(calendarEnd.getTime());
}

将时间格式格式为*“yyyy-MM-DDTHH:mm:ss+TIMEZONE”*转换为指定格式的时间字符串

/**
 * 将时间格式格式为"yyyy-MM-DDTHH:mm:ss+TIMEZONE"转换为指定格式的时间字符串
 *
 * @param inputTime    待转换的时间字符串,
 * @param outputFormat 输出时间的格式,如"yyyy-MM-dd HH:mm:ss"
 * @return 转换后的时间字符串
*/
public static String convertTimeFormat(String inputTime, String outputFormat) throws ParseException {
  // 创建输入格式化器
  SimpleDateFormat inputFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+08:00");
  // 创建输出格式化器
  SimpleDateFormat outputFormatter = new SimpleDateFormat(outputFormat);
  // 将输入的时间字符串解析为Date对象
  Date date = inputFormatter.parse(inputTime);
  // 获取系统默认时区
  TimeZone timeZone = TimeZone.getDefault();
  // 设置输出格式化器的时区
  outputFormatter.setTimeZone(timeZone);
  // 将Date对象转换为指定格式的时间字符串
  return outputFormatter.format(date);
}

获取今天是周几

/**
 * 获取今天是周几
 *
 * @return int
*/
public static int getNowWeekNum() {
  Calendar calendar = Calendar.getInstance();
  return (calendar.get(Calendar.DAY_OF_WEEK) - 1) == 0 ? 7 : (calendar.get(Calendar.DAY_OF_WEEK) - 1);
}

判断传入日期是否是今天

public static boolean getIsToday(Date date) {
  DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
  LocalDateTime localTime = LocalDateTime.parse(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date), dtf);
  LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);
  LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);
  return localTime.isAfter(startTime) && localTime.isBefore(endTime);
}

获取起止时间

public static Map<String,Object> acquisitionStartStopTime(Integer dayNum){
	  Map<String, Object> timeMap = new HashMap<>(2);
	  // 获取当前时间
	  LocalDateTime now = LocalDateTime.now();
	  // 获取昨天的日期
	  LocalDateTime yesterday = now.minusDays(dayNum);
	  // 设置昨天的起始时间为凌晨
	  LocalDateTime startOfYesterday = yesterday.with(LocalTime.MIN);
	  // 设置昨天的结束时间为当天的最后一秒
	  LocalDateTime endOfYesterday = yesterday.with(LocalTime.MAX);
	  // 定义时间格式
	  DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
	  // 格式化昨天的起始时间和结束时间
	  String formattedStartOfYesterday = startOfYesterday.format(formatter);
	  String formattedEndOfYesterday = endOfYesterday.format(formatter);
	  timeMap.put("startTime",formattedStartOfYesterday);
	  timeMap.put("endTime",formattedEndOfYesterday);
	  return timeMap;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只牛博

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值