1. ホーム
  2. android

[解決済み] Android: 文字列を日付に変換するにはどうすればよいですか?

2022-03-13 22:47:33

質問

ユーザがアプリケーションを起動するたびに、データベースに現在時刻を保存します。

Calendar c = Calendar.getInstance();
    String str = c.getTime().toString();
    Log.i("Current time", str);

データベース側では、現在時刻を文字列として保存しています(上記のコードにあるように)。したがって、データベースからそれをロードするとき、私はそれをDateオブジェクトにキャストする必要があります。いくつかのサンプルを見たが、どれも "DateFormat"を使用していた。しかし、私の書式はDate書式と全く同じです。だから、私は"DateFormat"を使用する必要がないと思います。私は正しいですか?

このStringを直接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();  
}