• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗的软件工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

给定时间 2023年09月10日 在此时间上,加一个月

点击查看代码

package com.sleepman.pers;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;

public class Demo {
    public static void main(String[] args) throws ParseException {
        // 待转换的日期字符串
        String strDate = "2023年09月10日";

        // 创建SimpleDateFormat对象,指定日期字符串的格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        // 定义日期格式
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日");

        // 将字符串解析为Date对象
        Date date = sdf.parse(strDate);

        // 调用不同方法进行日期操作

        //有误
        long time1 = getTime1(date);

        //正确
        long time2 = getTime2(date);

        //正确
        Date time3 = getTime3(date);

        //正确
        String time4=getTime4(strDate,dtf);


        // 输出结果

        //有误
        System.out.println("加上一个月的时间(方法1):" + sdf.format(time1));


        System.out.println("加上一个月的时间(方法2):" + sdf.format(time2));

        System.out.println("加上一个月的时间(方法3):" + sdf.format(time3));

        System.out.println("加上一个月的时间(方法4):" + time4);
    }

    private static String getTime4(String strDate,DateTimeFormatter dtf) {


        // 将字符串解析为LocalDate对象
        LocalDate initialDate = LocalDate.parse(strDate, dtf);

        // 加上一个月
        LocalDate resultDate = initialDate.plusMonths(1);


        return resultDate.format(dtf);

    }

    /**
     * 获取加上一个月后的时间(方法1)
     *
     * @param date 输入的日期
     * @return 加上一个月后的时间
     */
    private static long getTime1(Date date) {
        long time = date.getTime();

        // 一个月的毫秒数
        long addTime = 24 * 60 * 60 * 1000 * 30;

        // 加上一个月的时间
        time += addTime;

        return time;
    }

    /**
     * 获取加上一个月后的时间(方法2)
     *
     * @param date 输入的日期
     * @return 加上一个月后的时间
     */
    private static long getTime2(Date date) {
        long time = date.getTime();

        // 一个月的毫秒数
        long addTime = 24 * 60 * 60 * 1000;

        // 加上一个月的时间
        time += addTime*30;

        return time;
    }

    /**
     * 获取加上一个月后的时间(方法3)
     *
     * @param date 输入的日期
     * @return 加上一个月后的时间
     */
    private static Date getTime3(Date date) {
        // 获取Calendar实例
        Calendar instance = Calendar.getInstance();

        // 将日期设置为输入日期
        instance.setTime(date);

        // 在Calendar上加上一个月
        instance.add(Calendar.MONTH, 1);

        // 返回加上一个月后的时间
        return instance.getTime();
    }
}

posted on 2024-01-27 14:04  周政然  阅读(44)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3