将DateTime转换为毫秒

时间:2012-11-11 09:07:54

标签: android datepicker datetimepicker milliseconds datetime-conversion

我想将日期+时间转换为毫秒。我正在使用此代码转换它们。

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();

但它没有给我正确的价值。例如,如果我想转换这个“ 2000年9月23日02:45 AM ” 它给了我这个值“ 96965900504 ”。但这个值与在这些网站中的值不同

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 ,但它并没有给我正确的结果。如何才能将date + time的正确值变为毫秒???

3 个答案:

答案 0 :(得分: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返回正确的值。

答案 1 :(得分:1)

好的,它完成了 我只是将TimeZone添加到此代码

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

答案 2 :(得分: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");