programing

Java 형식의 yyy-MM-dd 형식의 달력 날짜

itsource 2022. 7. 5. 23:19
반응형

Java 형식의 yyy-MM-dd 형식의 달력 날짜

달력 날짜를 로 변환하는 방법yyyy-MM-dd포맷합니다.

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);            
Date inActiveDate = null;
try {
    inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

이렇게 하면inActiveDate = Wed Sep 26 00:00:00 IST 2012하지만 내가 필요한 건2012-09-26저의 목적은 휴지 상태 기준을 사용하여 이 날짜를 데이터베이스 내의 다른 날짜와 비교하는 것입니다.그래서 날짜 오브젝트가 필요합니다.yyyy-MM-dd포맷합니다.

자바어Date는 1970년 1월1일 00:00 GMT 이후의 밀리초수를 나타내는 컨테이너입니다.

이런 걸 쓸 때System.out.println(date), Java는Date.toString()내용을 인쇄합니다.

변경할 수 있는 유일한 방법은 이 명령어를 덮어쓰는 것입니다.Date고객 고유의 실장을 제공합니다.Date.toString()IDE를 기동해, 이것을 시험하기 전에, 저는 그렇게 하지 않습니다.그것은 문제를 복잡하게 할 뿐입니다.날짜 형식을 사용할 형식(또는 표시 형식)으로 지정하는 것이 좋습니다.

자바 8 이상

LocalDateTime ldt = LocalDateTime.now().plusDays(1);
DateTimeFormatter formmat1 = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH);
System.out.println(ldt);
// Output "2018-05-12T17:21:53.658"

String formatter = formmat1.format(ldt);
System.out.println(formatter);
// 2018-05-12

Java 8 이전 버전

ThreeTen 백포트를 사용해야 합니다.

다음 내용은 (원래 답변과 같이) 과거 목적을 위해 유지됩니다.

날짜 형식을 지정할 수 있습니다.

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(cal.getTime());
// Output "Wed Sep 26 14:23:28 EST 2012"

String formatted = format1.format(cal.getTime());
System.out.println(formatted);
// Output "2012-09-26"

System.out.println(format1.parse(formatted));
// Output "Wed Sep 26 00:00:00 EST 2012"

이것들은 실제로 같은 날짜로 다르게 표현됩니다.

코드가 틀렸어요.구문 분석 날짜가 없으므로 날짜 개체로 유지합니다.

캘린더 날짜 개체를 문자열로 표시 및 유지할 때 형식을 지정할 수 있습니다.

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");          
String inActiveDate = null;
try {
    inActiveDate = format1.format(date);
    System.out.println(inActiveDate );
} catch (ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

java.time

Mad Programmer의 답변은 정확합니다. 특히 Joda-Time에 대한 팁입니다.Joda-Time의 후속 버전은 새로운 java.time 패키지로 Java 8에 포함되어 있습니다.Java 8의 코드 예를 다음에 나타냅니다.

(로컬 날짜가 아닌) date-time으로 작업할 경우 시간대는 critical입니다.요일은 시간대에 따라 달라집니다.예를 들어, 인도의 표준 시간대는+05:30(UTC보다 5시간 30분 먼저), 반면 프랑스는 불과 1시간 먼저입니다.그래서 인도의 새로운 날의 순간은 하나의 날짜를 가지고 있고 프랑스의 같은 순간은 "어제" 날짜를 가지고 있다.시간대 또는 오프셋 정보가 없는 문자열 출력을 생성하면 모호성이 발생합니다.당신이 YYY-MM-DD 출력을 요청해서 제공했는데 추천하지 않습니다.대신 다음과 같은 출력을 얻을 수 있습니다.2014-02-25+05:30

ZoneId zoneId = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zonedDateTime = ZonedDateTime.now( zoneId );

DateTimeFormatter formatterOutput = DateTimeFormatter.ISO_LOCAL_DATE; // Caution: The "LOCAL" part means we are losing time zone information, creating ambiguity.
String output = formatterOutput.format( zonedDateTime );

콘솔에 덤프...

System.out.println( "zonedDateTime: " + zonedDateTime );
System.out.println( "output: " + output );

실행 시...

zonedDateTime: 2014-02-25T14:22:20.919+05:30[Asia/Kolkata]
output: 2014-02-25

조다 타임

java.time의 전신인 Joda-Time 라이브러리를 사용하는 것과 유사한 코드입니다.

DateTimeZone zone = new DateTimeZone( "Asia/Kolkata" );
DateTime dateTime = DateTime.now( zone );
DateTimeFormatter formatter = ISODateTimeFormat.date();
String output = formatter.print( dateTime );

ISO 8601

참고로 이 입력 문자열 형식은 ISO 8601에서 정의된 몇 가지 편리한 날짜 문자열 형식 중 하나인 표준 형식입니다.

언제 생성하는 다양한 date-time 값 문자열 표현을 구문 분석하기 둘 다 Joda-Time과 java.time 기본적으로 ISO8601포맷을 사용합니다.

java.util.Date개체 사용자 지정 형식으로 대신 쓰는 날짜를 대표할 수 없다.SimpleDateFormat.formatstring.

String myString=format1.format(date);
public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    cal.set(year, month, date);
    SimpleDateFormat format1 = new SimpleDateFormat("yyyy MM dd");
    String formatted = format1.format(cal.getTime());
    System.out.println(formatted);
}

'a'를 java.util.Date당신은 String먼저 네 형식을 사용하여로 변환할 개체입니다.

inActiveDate = format1.parse(  format1.format(date)  );

그러나 나는 되는 것이 불필요한 여기서 믿는다.

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 7);
Date date = c.getTime();
SimpleDateFormat ft = new SimpleDateFormat("MM-dd-YYYY");
JOptionPane.showMessageDialog(null, ft.format(date));

이번 달 날과 연도 형식으로 JOption 창문 창에서 데이트+7일 표시됩니다.

public static String ThisWeekStartDate(WebDriver driver) {
        Calendar c = Calendar.getInstance();
        //ensure the method works within current month
        c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        System.out.println("Before Start Date " + c.getTime());
        Date date = c.getTime();

          SimpleDateFormat dfDate = new SimpleDateFormat("dd MMM yyyy hh.mm a");

          String CurrentDate = dfDate.format(date);
          System.out.println("Start Date " + CurrentDate);
          return CurrentDate;

    }
    public static String ThisWeekEndDate(WebDriver driver) {

        Calendar c = Calendar.getInstance();
        //ensure the method works within current month
        c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        System.out.println("Before End Date " + c.getTime());
        Date date = c.getTime();

          SimpleDateFormat dfDate = new SimpleDateFormat("dd MMM yyyy hh.mm a");

          String CurrentDate = dfDate.format(date);
          System.out.println("End Date " + CurrentDate);
          return CurrentDate;
    }

I found this code where date is compared in a format to compare with date field in database...may be this might be helpful to you...

날짜 simpledateformat를 사용하여 문자열 변환하면 집어 데이터베이스 안에 있는 날짜 분야와 비교하기 어렵다.

그래서 형식 STR_to_DATE('yourdate','%#%d/%Y')--을을 선택 사용에 이 형식에 집어 날짜 분야의 정확한 날짜 형식 받을 것java 문자열 날짜 바꿉니다.

http://javainfinite.com/java/java-convert-string-to-date-and-compare/

언급URL:https://stackoverflow.com/questions/12575990/calendar-date-to-yyyy-mm-dd-format-in-java

반응형