4

時間と日付のリストを含む議題を持つアプリがあります。ユーザーがこれらのイベントのいずれかをクリックすると、Calendar インテントが開始され、時間、日付、および事前設定されたリマインダーを含むカレンダーが表示されます。ただし、インテントをロードすると、開始時刻は現在の時刻になり、終了時刻は 1 時間先になります。誰かが私が間違っていることを教えてください。これは、私がテストしている日付と時刻が設定されたハードコードされたカレンダーの例です

Calendar startDate = Calendar.getInstance();
startDate.set(Calendar.MONTH, 8);
startDate.set(Calendar.YEAR, 2012);
startDate.set(Calendar.DAY_OF_MONTH, 5);
startDate.set(Calendar.HOUR_OF_DAY, 9);


// Set the calendar
Calendar endDate = Calendar.getInstance();
endDate.set(Calendar.MONTH, 8);
endDate.set(Calendar.YEAR, 2012);
endDate.set(Calendar.DAY_OF_MONTH, 5);
endDate.set(Calendar.HOUR_OF_DAY, 15);
endDate.set(Calendar.MINUTE, 30);

Intent intent = new Intent(Intent.ACTION_EDIT);
intent.putExtra("calendar_id", 1);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", startDate.getTime());
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT |
                Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra("allDay", false);
intent.putExtra("endTime", endDate.getTime());
intent.putExtra("title", "A Test Event from android app");
intent.putExtra("description", "Your consulting date and time");
startActivity(intent);
4

1 に答える 1

1

たくさん検索した後。私はこの方法を見つけました。少し面倒ですが、動作します

java.sql.Timestamp tsStart = java.sql.Timestamp.valueOf(year+ "-" + month + "-" + day + " " + hour + ":"+ minute + ":00");
java.sql.Timestamp tsStart = java.sql.Timestamp.valueOf(year+ "-" + month + "-" + day + " " + hour2+ ":"+ minute2+ ":00");

long startTime = tsStart.getTime();
long endTime = tsEnd.getTime();

推測では実際には違いはありませんが、Calendarメソッドを使用して日付と時刻を設定できることを望んでいました。また、この方法を使用している人に連絡し、年、月、日、時間などのフィールドがタイムスタンプ形式と一致していることを確認してください。私のアプリケーションでは、アジェンダをクリックすると、そのイベントの日付と時刻の文字列が必要になり、次のように分割されていました。

String array[] = tvSessionTime.getText().toString().split(" ");
String array2[] = array[0].split(":");
int iHour = Integer.parseInt(array2[0])
int sMinute = Integer.parseInt(array2[0])
String array3[] = tvSessionDate.getText().toString().split(" ");

また、07.05のような時間があり、時間を解析すると、時は7に戻り、分は5に戻ります。形式はyyyy-hh-mmです。したがって、日付形式と一致しなかったため、エラーが発生していました。ただ頭を上げて!

于 2012-07-27T12:49:50.803 に答える