文字列形式の dd/mm/yyyy の日付があるかどうかを尋ねたいのですが、それを int 年、int 月、int 日に分割したいのですが、どうすればよいですか。
それ以外は、文字列の日付 (dd/mm/yyyy) が SQLite に格納されます。
文字列形式の dd/mm/yyyy の日付があるかどうかを尋ねたいのですが、それを int 年、int 月、int 日に分割したいのですが、どうすればよいですか。
それ以外は、文字列の日付 (dd/mm/yyyy) が SQLite に格納されます。
あなたもこのように分割します
String date="dd/mm/yyyy";
String[] items1 = date.split("/");
String date1=items1[0];
String month=items1[1];
String year=items1[2];
public static void main(String[] args) {
String startDateString = "01/26/2013";
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
Date startDate=null;
String newDateString = null;
try
{
startDate = df.parse(startDateString);
System.out.println("month===>>>"+(startDate.getMonth()+1));
System.out.println("date===>>>"+startDate.getDate());
System.out.println("year===>>>"+(startDate.getYear()+1900));
} catch (Exception e)//(ParseException e)
{
e.printStackTrace();
}
}
デーツはとてもデリケートです。通常、日付は位置 (タイムゾーン) に関連している必要があります。
Java が提供する Date や Calendar などのクラスを TimeZone と一緒に使用して、文字列を実際の日付オブジェクトに正しく解釈するか、その日付の位置をまったく気にしない場合は、 String.split() を使用して取得できます配列の場合、正しい形式を確認し、各部分で Interger.valueOf を呼び出します。
「/」を使用して文字列を分割する
String s= "15/5/2013";
String arr[] =s.split("/");
System.out.println("Date = "+arr[0]);
System.out.println("Month = "+arr[1]);
System.out.println("Year = "+arr[2]);
出力
Date = 15
Month = 5
Year = 2013
文字列オブジェクトの Split メソッドを使用し、結果の文字列を int にキャストします。
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)
可能であれば、Calendar.getTimeInMilliseconds から取得した長い日付値を保存すると、日付の処理が簡単になります。
ロケールに関係なく日付を文字列として保存すると、後でエラーが発生します。
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date d = df.parse("String date (dd/mm/yyyy) is stored in the SQLite");
int month = d.getMonth();
int day= d.getDay();
int year = d.getYear();