我想将日期+时间转换为毫秒。我正在使用此代码转换它们。
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/
然后我尝试向我们time.getCurrentHour() + 5
因为我当前的位置是 GMT + 5 ,但它并没有给我正确的结果。如何才能将date + time的正确值变为毫秒???
答案 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
因此,请确保DatePicker
和TimePicker
返回正确的值。
答案 1 :(得分:1)
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");