2

我想將日期和時間轉換爲毫秒。我正在使用此代碼來轉換它們。將DateTime轉換爲毫秒

final TimePicker time = (TimePicker) findViewById(R.id.timePicker1); 
final DatePicker date = (DatePicker) findViewById(R.id.datePicker1); 

final Calendar calendar = Calendar.getInstance(); 

calendar.set(date.getYear(), date.getMonth(), 
          date.getDayOfMonth(), time.getCurrentHour(), 
          time.getCurrentMinute(), 0); 
final long startTime = calendar.getTimeInMillis(); 

但它沒有給我正確的價值。例如,如果我想轉換這個「Sep 23 2000 02:45 AM」 它給了我這個值「」。但是這個值是不是喜歡在這些網站

http://www.ruddwire.com/handy-code/date-to-millisecond-calculators/

http://www.timestampconvert.com/?go1=true&m=09&d=23&y=2000&hours=02&min=45&sec=0&Submit=++++++Convert+to+timestamp+++++&offset=-5

然後我嘗試給我們time.getCurrentHour() + 5因爲我目前的位置是GMT + 5但簡化版,它給了我正確的結果。我如何獲得日期+時間的正確值爲毫秒?

回答

1

確定其完成 我只是添加TimeZone的這段代碼

TimeZone timezone = TimeZone.getTimeZone("GMT+05:00"); 
calendar.setTimeZone(timezone); 
0

試試這個。

Calendar calendar = Calendar.getInstance(); 
     Date date = calendar.getTime(); 
     TimeZone tz = TimeZone.getTimeZone("your timezone"); 

     SimpleDateFormat formatter = 
      (SimpleDateFormat)DateFormat.getDateTimeInstance(DateFormat.LONG, 
      DateFormat.LONG, Locale.getDefault()); 

     formatter.setTimeZone(tz); 
     formatter.applyPattern("your pattern"); 
     formatter.parse("yourdate"); 
2

如果直接設置值到日曆中,您將得到正確的值:

Calendar c = Calendar.getInstance(); 
c.set(2000, 8, 23, 2, 45, 0); 

System.out.println("TimeInMillis:" + c.getTimeInMillis()); 

Date e = new Date(c.getTimeInMillis()); 
System.out.println("Date:" + e); 

結果將是:

TimeInMillis:969666300102 
Date:Sat Sep 23 02:45:00 AST 2000 

所以一定要確保DatePickerTimePicker返回正確的價值觀。