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 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)
  • ¥15 matlab代码 关于微分方程和嵌套的分段函数。