Search code examples
androidstringdatecasting

Android: How can I Convert String to Date?


I store current time in database each time application starts by user.

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

In database side, I store current time as string (as you see in above code). Therefore, when I load it from database, I need to cast it to Date object. I saw some samples that all of them had used "DateFormat". But my format is exactly as same as Date format. So, I think there is no need to use "DateFormat". Am I right?

Is there anyway to directly cast this String to Date object? I want to compare this stored time with current time.


update

Thanks all. I used following code:

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;            
    
   }

Solution

  • From String to Date

    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();  
    }
    

    From Date to String

    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();  
    }