Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的字符串到时间戳_Java_Datetime_Date Formatting - Fatal编程技术网

Java中的字符串到时间戳

Java中的字符串到时间戳,java,datetime,date-formatting,Java,Datetime,Date Formatting,在我的应用程序中,我有一个要求,用户以这种格式输入一个时间字符串:HH:MM:SS,我需要格式化、解析并显示这些输入字符串之间的差异(以秒为单位) 静态长MyTimeStamp(字符串str) 是返回长值的静态方法 String TimeString1="10:30:15"; String TimeString2="10:30:45"; long t1 = MyTimeStamp(TimeString1); long t2 = MyTimeStamp(TimeString2); lon

在我的应用程序中,我有一个要求,用户以这种格式输入一个时间字符串:
HH:MM:SS
,我需要格式化、解析并显示这些输入字符串之间的差异(以秒为单位)

静态长MyTimeStamp(字符串str)

是返回长值的静态方法

String TimeString1="10:30:15";
String TimeString2="10:30:45";

long t1 =  MyTimeStamp(TimeString1); 
long t2 =  MyTimeStamp(TimeString2);

long t3 = t1 - t2;
System.out.println(t3); 
O/p应为30秒。尝试使用类进行解析:

SimpleDateFormat dtf = new SimpleDateFormat("HH:mm:ss");
try {
    Date dtime = dtf.parse("23:34:12");
    System.out.println(dtime.toString());
} catch (ParseException ex) {
    System.err.println(ex.getMessage());
}
您可以使用
Date
类计算时间差:

SimpleDateFormat dtf = new SimpleDateFormat("HH:mm:ss");
try {
    Date t1 = dtf.parse("10:30:15");
    Date t2 = dtf.parse("10:30:45");
    System.out.println("Diff in seconds: " + ((t2.getTime()-t1.getTime())/1000));
} catch (ParseException ex) {
    System.err.println(ex.getMessage());
}
一种可能的解决办法:

    public static long getMillis(String time){
        try {
            SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
            Date d = df.parse(time);
            return d.getTime();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return 0;
    }

    public static void main(String[] args) {

        long t3 = (getMillis("10:30:45") - getMillis("10:30:15"))/1000;
        System.out.println(t3);

    }
这是密码-

        String TimeString1="10:30:15";
        String TimeString2="10:30:45";
         SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("HH:mm:ss");
         Date date1 = null;
         Date date2 = null;
         try {
             date1 = DATE_FORMAT.parse(TimeString1);
             date2 = DATE_FORMAT.parse(TimeString2);

             long diff = date2.getTime()-date1.getTime();
             System.out.println(diff/1000);

        } catch (ParseException e) {
            e.printStackTrace();
        }
输出-

30

什么是
MyTimeStamp
?和
longt3=t1-t2
将产生编译器错误。另外:你的问题是什么?@ManishSingh我问“你的问题”,因为你只是告诉我们你的要求是什么。你没有告诉我们你有什么问题。显然,你被困在了一个非常低的语言水平(t1-t2的
。在这种情况下,我建议继续学习语言基础。有很多教程。@Seelenvirtuose当然可以,伙计。我想你忘了显示dtf的声明了吗?还要提到SimpleDataFormat对象。@NikhilTalreja我没有粘贴
dtf
声明!谢谢