IT

안드로이드, 문자열을 날짜로 어떻게 변환합니까?

lottoking 2020. 7. 7. 07:23
반응형

안드로이드, 문자열을 날짜로 어떻게 변환합니까?


사용자가 응용 프로그램을 시작할 때마다 데이터베이스에 현재 시간을 저장합니다.

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

데이터베이스 측에서는 현재 시간을 문자열로 저장합니다 (위의 코드에서 볼 수 있듯이). 따라서 데이터베이스에서로드 할 때 Date 객체로 캐스팅해야합니다. 나는 그들 모두가 "DateFormat"을 사용한 샘플들을 보았다. 그러나 내 형식은 날짜 형식과 정확히 동일합니다. 따라서 "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();  
}

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 객체 날짜 이며 출력은 다음과 같습니다.

수 3 월 14 일 13:30:00 UTC 2018

14 Mar 2018


It could be a good idea to be careful with the Locale upon which c.getTime().toString(); depends.

One idea is to store the time in seconds (e.g. UNIX time). As an int you can easily compare it, and then you just convert it to string when displaying it to the user.


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

참고URL : https://stackoverflow.com/questions/8573250/android-how-can-i-convert-string-to-date

반응형