2

Date+Timeミリ秒に変換したい。私はそれらを変換するためにこのコードを使用しています。

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であるため、私たちに試してみましたが、正しい結果が得られません。日付と時刻の正しい値をミリ秒単位で取得するにはどうすればよいですか?

4

3 に答える 3

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返すことを確認してください。

于 2012-11-11T09:32:07.203 に答える
1

了解しました。このコードにTimeZoneを追加するだけです。

TimeZone timezone = TimeZone.getTimeZone("GMT+05:00");
calendar.setTimeZone(timezone);
于 2012-11-11T12:06:21.493 に答える
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");
于 2012-11-11T09:22:38.850 に答える