在Java中更有效地编写

时间:2017-09-24 16:45:41

标签: java arrays datetime date-format epoch

你能帮助我在Java中显示时差吗?我已经完成了,但是有一些代码不应该被重写。

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Time {

    public static void main(String[] args) throws Exception {
        Date dt = new Date();
        DateFormat[] dtformat = new DateFormat[6];
        dtformat[0] = DateFormat.getInstance();
        dtformat[1] = DateFormat.getDateInstance();
        dtformat[2] = DateFormat.getDateInstance(DateFormat.MEDIUM);
        dtformat[3] = DateFormat.getDateInstance(DateFormat.FULL);
        dtformat[4] = DateFormat.getDateInstance(DateFormat.LONG);
        dtformat[5] = DateFormat.getDateInstance(DateFormat.SHORT);
        System.out.println("Today :");
        for(DateFormat dateform : dtformat)
            System.out.println(dateform.format(dt));

        String str = "May 21 1980";
        SimpleDateFormat df = new SimpleDateFormat("MMM dd yyyy");
        Date date = df.parse(str);
        long epoch = date.getTime();

        Date dl = new Date(epoch);
        DateFormat[] dlformat = new DateFormat[6];
        dlformat[0] = DateFormat.getInstance();
        dlformat[1] = DateFormat.getDateInstance();
        dlformat[2] = DateFormat.getDateInstance(DateFormat.MEDIUM);
        dlformat[3] = DateFormat.getDateInstance(DateFormat.FULL);
        dlformat[4] = DateFormat.getDateInstance(DateFormat.LONG);
        dlformat[5] = DateFormat.getDateInstance(DateFormat.SHORT);
            System.out.println("\nDate of Birth :");
            for(DateFormat dateform : dlformat)
            System.out.println(dateform.format(dl));

            System.out.println("\nDifference Days: " + Diff(dl,dt) + " hari");
    }
    public static long Diff(Date dl, Date dt) {
        long diffdays = dt.getTime() - dl.getTime();
        long days = diffdays / (24 * 60 * 60 * 1000);
        return days;
    }
}

输出应该相同,例如: 9/24/17 11:31 PM

2017年9月24日

2017年9月24日

2017年9月24日星期日

2017年9月24日

17年9月24日

1 个答案:

答案 0 :(得分:0)

以下代码几乎可以作为您的代码,但通过将其移动到一个单独的方法来删除逻辑的重复部分。每次您需要使用指定的日期格式打印任何日期,您可以调用{{1}通过传递printDates对象

Date