0

我已将日期格式milliseconds和时间格式转换为milliseconds. 我得到的当前时间超过13 digits. CurrentTime= 1357755780000, StartingTime=1357602840,EndingTime=1357756140

但是当我在下面的代码中进行比较时,if部分没有被执行,只有else部分被执行。

我的代码有什么错误吗?我想将 currentTime 设为 10 位数字。所以我认为,将日期格式转换为毫秒是错误的。

 String toParse = getDateorTime(1) + " " + getDateorTime(2);
 long currentTime=0,startingTime=0,endingTime=0,milliseconds=0;
 try 
 {
    dateFormater = new SimpleDateFormat("yyyy/MMM/dd hh:mm"); 
    Date date = null;
    try {
       date = dateFormater.parse(toParse);
       date.setTime(milliseconds);
    }catch (Exception e) {
       System.out.println("\n Error in date parsing"+e.toString());
    }
    currentTime = (date.getTime());
    start=Long.parseLong((cursor.getString(5).trim()));
    end=Long.parseLong((cursor.getString(6).trim()));
 }catch (ParseException pe) {
    pe.printStackTrace();
 }

 if((currentTime>=startingTime)&&(currentTime<=endingTime))
 {
   //
 }
4

3 回答 3

0

根据您的示例,您实际上拥有startingTimeendingTime在 SECONDS 中,而您将其与currentTimeMILLISECONDS 进行比较。只需将第二次乘以 1,000,如下所示:

if((currentTime>=startingTime*1000L)&&(currentTime<=endingTime*1000L))
于 2013-01-09T05:20:12.547 回答
0

只需除以1000

Calendar cal = Calendar.getInstance();

System.out.println(cal.getTimeInMillis()/1000);
于 2013-01-09T05:21:07.417 回答
0

将 long 值转换为字符串,如果长度>10,只需将值 (0,10) 子字符串化,然后您也可以使用 string .equals 或将它们转换回 long 进行比较。

于 2013-01-09T05:33:51.413 回答