poisonousID 2022-04-14 21:33 采纳率: 100%
浏览 11
已结题

java如何在一个类(非主类)里实现日期间的计算

准确的来说我想问一问如何在一个非主类的类里面使用parse()方法

import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Calendar;
public class Test{
    public static void main(String args[]){
        String beginTime = "2022-03-13";
        String endTime = "2022-04-14";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
         long time1 = 0;
         long time2 = 0;
         try{
               cal.setTime(format.parse(beginTime));
               time1 = cal.getTimeInMillis();
               cal.setTime(format.parse(endTime));
               time2 = cal.getTimeInMillis();
         }catch(Exception e){
             e.printStackTrace();
        }
         long between_days=(time2-time1)/(1000*3600*24);
        System.out.println(between_days);
    }
}
   为什么用了SimpleDateFormat里的parse函数就一定要用try catch抛出ParseException异常啊,那不就是只能在主类里实现这一功能了么。如果我想在一个其他类里面实现这一功能该怎么办呢
    就是怎么在一个类里将一个String类型的时间转换成getTimeInMillis的那个类型进行计算。

上面这些内容都是我在网上零零散散搜索学习乱敲出来的,没系统学过Calendar和Date这俩,还请见谅。

  • 写回答

1条回答 默认 最新

  • 溪风沐雪 2022-04-14 21:57
    关注

    我按我的理解整理了一个例子,你参考一下吧:

    package com.example;
    
    import java.text.SimpleDateFormat;
    import java.text.ParseException;
    import java.util.Calendar;
    import java.util.Date;
    
    class DateFormat {
        private String format;
    
        public DateFormat(String format) {
            this.format = format;
        }
    
        public Date parse(String time) {
            SimpleDateFormat format = new SimpleDateFormat(this.format);
            try {
                Date date = format.parse(time);
                return date;
            } catch (ParseException e) {
                System.out.println("输入时间格式错误!");
                return null;
            }
    
        }
    }
    
    public class AppTest {
        public static void main(String args[]) {
            String beginTime = "2022-03-13";
            String endTime = "2022-04-14";
            DateFormat format = new DateFormat("yyyy-MM-dd");
            Calendar cal = Calendar.getInstance();
            long time1 = 0;
            long time2 = 0;
            try {
                cal.setTime(format.parse(beginTime));
                time1 = cal.getTimeInMillis();
                cal.setTime(format.parse(endTime));
                time2 = cal.getTimeInMillis();
            } catch (Exception e) {
                e.printStackTrace();
            }
            long between_days = (time2 - time1) / (1000 * 3600 * 24);
            System.out.println(between_days);
        }
    }
    
    
    

    如有帮助,请采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月22日
  • 已采纳回答 4月14日
  • 创建了问题 4月14日

悬赏问题

  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝