簡體   English   中英

如何將Date = new Date轉換為時間,然后將時間轉換為long值

[英]How to convertDate = new Date to just time and then convert the time to a long value

一世

有誰知道如何將我的日期轉換為當前“2016年6月14日星期二10:21:46”到時間10:21:46並且還要將此時間轉換為該時間。 這是我到目前為止,它似乎沒有工作得很好它留下了“”這意味着我不能減去前一次的當前時間

 Date d=new Date();
 SimpleDateFormat sdf=new SimpleDateFormat("hh:mm ");
 String timeNow = sdf.format(d);
 Long currentTime = Long.valueOf(timeNow).longValue();

這給了我准確的結果

import java.util.Date;

public class myClass

{
 private Date date1 = null;

 public void start()
    {
       Date now = new Date();
      //assuming you did first do whatever you need to do with date1 prior to this 
      long timeDiffernce = (now.getTime() - date1.getTime()) / 1000;
     // this is milliseconds so divide by 1000 to get seconds
    }

}

您可以使用Calender類,然后從日歷對象中獲取時間。

public class CalendarTest {
  public static void main (String[] args) throws java.lang.Exception
  {
     Calendar cal = Calendar.getInstance();   // GregorianCalendar
     System.out.println("Calendar's toString() is : " + cal + "\n");
     System.out.println("Time zone is: " + cal.getTimeZone() + "\n");


    Date date = cal.getTime();
    System.out.println("Current date and time in Date's toString() is : " + date + "\n");
    System.out.println("Hour  : " + cal.get(Calendar.HOUR));
    System.out.println("Minute : " + cal.get(Calendar.MINUTE));
  }
}

您可以使用日歷:

Calendar cal = Calendar.getInstance();

SimpleDateFormat sdf=new SimpleDateFormat("hh:mm:ss");

String timeNow = sdf.format(cal.getTime());
Log.i("Time in hh:mm:ss ", timeNow);

Long currentTime = cal.getTimeInMillis();
Log.i("Time in milliseconds ", currentTime+"");

來自評論

例如,我想從10:11:55減去10:21:46

不知道你是否只想比較時間,或者日期是否重要,所以在這里我將展示:

TimeZone timeZone = TimeZone.getTimeZone("Africa/Johannesburg"); // or "Africa/Maseru" or "Africa/Mbabane"

String date1str = "Tue Apr 27 10:11:55 SAST 2016";
String date2str = "Tue Jun 14 10:21:46 SAST 2016";

SimpleDateFormat fmt1 = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy");
fmt1.setTimeZone(timeZone);
Date date1 = fmt1.parse(date1str);
Date date2 = fmt1.parse(date2str);

System.out.println("Time difference in seconds: " + (date2.getTime() - date1.getTime()) / 1000);

Calendar cal = Calendar.getInstance(timeZone);
cal.setTime(date1);
int secondOfDay1 = cal.get(Calendar.HOUR_OF_DAY) * 60 * 60 +
                   cal.get(Calendar.MINUTE) * 60 +
                   cal.get(Calendar.SECOND);
cal.setTime(date2);
int secondOfDay2 = cal.get(Calendar.HOUR_OF_DAY) * 60 * 60 +
                   cal.get(Calendar.MINUTE) * 60 +
                   cal.get(Calendar.SECOND);

System.out.println("Time difference in seconds: " + (secondOfDay2 - secondOfDay1));

產量

Time difference in seconds: 4147791
Time difference in seconds: 591

第一行顯示4月27日10:11:55和6月14日10:21:46之間的總秒數。 4147791秒是48d 9m 51s。

第一行顯示10:11:55到10:21:46之間的秒數,忽略了有問題的日期。 591秒是9米51秒。

import java.util.Date;

public class myClass

{
 private Date date1 = null;

 public void start()
    {
       Date now = new Date();
      //assuming you did first do whatever you need to do with date1 prior to this 
      long timeDiffernce = (now.getTime() - date1.getTime()) / 1000;
     // this is milliseconds so divide by 1000 to get seconds
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM