ユーザーがアプリケーションを起動するたびに、現在の時刻をデータベースに保存します。
Calendar c = Calendar.getInstance();
String str = c.getTime().toString();
Log.i("Current time", str);
データベース側では、現在の時刻を文字列として保存します(上記のコードを参照)。したがって、データベースからロードするときは、Dateオブジェクトにキャストする必要があります。すべてが「DateFormat」を使用しているサンプルを見ました。しかし、私の形式は日付形式とまったく同じです。したがって、「DateFormat」を使用する必要はないと思います。私は正しいですか?
とにかくこの文字列をDateオブジェクトに直接キャストする方法はありますか?この保存された時間を現在の時間と比較したいと思います。
ありがとう
======> 更新
親愛なるみんなに感謝します。私は次のコードを使用しました:
private boolean isPackageExpired(String date){
boolean isExpired=false;
Date expiredDate = stringToDate(date, "EEE MMM d HH:mm:ss zz yyyy");
if (new Date().after(expiredDate)) isExpired=true;
return isExpired;
}
private Date stringToDate(String aDate,String aFormat) {
if(aDate==null) return null;
ParsePosition pos = new ParsePosition(0);
SimpleDateFormat simpledateformat = new SimpleDateFormat(aFormat);
Date stringDate = simpledateformat.parse(aDate, pos);
return stringDate;
}
文字列から日付へ
String dtStart = "2010-10-15T09:27:37Z";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
try {
Date date = format.parse(dtStart);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
日付から文字列へ
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
try {
Date date = new Date();
String dateTime = dateFormat.format(date);
System.out.println("Current Date Time : " + dateTime);
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date d = dateFormat.parse(datestring)
simpleDateFormatまたはDateFormatクラスを使用して
例えば.
try{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); // here set the pattern as you date in string was containing like date/month/year
Date d = sdf.parse("20/12/2011");
}catch(ParseException ex){
// handle parsing exception if date string was different from the pattern applying into the SimpleDateFormat contructor
}
import Java.text.ParseException;
import Java.text.SimpleDateFormat;
import Java.util.Date;
public class MyClass
{
public static void main(String args[])
{
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy");
String dateInString = "Wed Mar 14 15:30:00 EET 2018";
SimpleDateFormat formatterOut = new SimpleDateFormat("dd MMM yyyy");
try {
Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatterOut.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
ここにDateオブジェクトdateがあり、出力は次のとおりです。
2018年3月14日水曜日13:30:00 UTC 2018
2018年3月14日
String source = "24/10/17";
String[] sourceSplit= source.split("/");
int anno= Integer.parseInt(sourceSplit[2]);
int mese= Integer.parseInt(sourceSplit[1]);
int giorno= Integer.parseInt(sourceSplit[0]);
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(anno,mese-1,giorno);
Date data1= calendar.getTime();
SimpleDateFormat myFormat = new SimpleDateFormat("20yy-MM-dd");
String dayFormatted= myFormat.format(data1);
System.out.println("data formattata,-->"+dayFormatted);
c.getTime().toString();
が依存するロケールに注意することは良い考えです。
1つのアイデアは、時間を秒単位で保存することです(例: NIX時間 )。 int
として簡単に比較でき、ユーザーに表示するときに文字列に変換するだけです。