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

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 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥20 白日门传奇少一个启动区服和启动服务器的快捷键,东西都是全的 , 他们说套一个出来就行了 但我就是弄不好,谁看看,
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计