人のカレンダーのイベントに関する情報をダウンロードするReSTサービスがあります...
日付と時刻を返すときは、文字列として返します
例えば日付= "2012年12月8日"&時間= "午前11時25分"
これをAndroidカレンダーに入れるには、次のことを行う必要があります。
Calendar beginTime = Calendar.getInstance();
beginTime.set(year, month, day, hour, min);
startMillis = beginTime.getTimeInMillis();
intent.put(Events.DTSTART, startMillis);
「beginTime.set()」メソッドで使用できるように、日付と時刻の変数を分割するにはどうすればよいですか?
文字列を分割する方法は本当に必要ではないと思います。あなたの場合は、「日付文字列からミリ秒単位で時間を取得する方法」である必要があります。次に例を示します。
import Java.text.DateFormat;
import Java.text.ParseException;
import Java.text.SimpleDateFormat;
import Java.util.Calendar;
import Java.util.Date;
public class DateTest {
public static void main(String[] args) {
String date = "12/8/2012";
String time = "11:25 am";
DateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm a");
try {
Date dt = df.parse(date + " " + time);
Calendar ca = Calendar.getInstance();
ca.setTime(dt);
System.out.println(ca.getTimeInMillis());
} catch (ParseException e) {
e.printStackTrace();
}
}
}
これを試して:
String date = "12/8/2012";
String time = "11:25 am";
String[] date1 = date.split("/");
String[] time1 = time.split(":");
String[] time2 = time1[1].split(" "); // to remove am/pm
Calendar beginTime = Calendar.getInstance();
beginTime.set(Integer.parseInt(date1[2]), Integer.parseInt(date1[1]), Integer.parseInt(date1[0]), Integer.parseInt(time1[0]), Integer.parseInt(time2[0]));
startMillis = beginTime.getTimeInMillis();
intent.put(Events.DTSTART, startMillis);
お役に立てれば。
日付を文字列形式で取得すると仮定して(そうでない場合は変換してください!)、次のようにします。
String date = "12/8/2012";
String[] dateParts = date.split("/");
String day = dateParts[0];
String month = dateParts[1];
同様に、uも時間を分割できます!
ここでsplitメソッドの例を見ることができます: Javaで文字列を分割する方法
次に、パラメータに配列を使用します。例:年などのarray [0]。
これは単なるアイデアです。分割せずにこのようなことを行うことができます
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm a");
Date date = formatter.parse("12/8/2012 11:25 am");
Calendar cal=Calendar.getInstance();
cal.setTime(date);
SimpleDateFormat
を使用します(APIドキュメントを確認してください)。適切な時間パターンを指定すると、文字列を即座に日付に変換できます。