LocalDate, LocalTime, LocalDateTime

LocalDate, LocalTime, LocalDateTime

LocalDate

LocalDate (Java Platform SE 8 )
Java의 LocalDate 클래스는 날짜를 표현하기 위해 사용되는 클래스입니다.

이 클래스는 Java 8 이상에서 사용 가능한 java.time 패키지의 일부입니다. LocalDate는 시간대를 고려하지 않는 순수한 날짜(년, 월, 일)를 나타냅니다. 여기에는 시간, 분, 초 등의 시간 정보는 포함되어 있지 않습니다. java.time.LocalDate를 import하면 사용가능합니다.

주요 특징

  1. 인스턴스 생성: LocalDate의 인스턴스는 여러 방법으로 생성할 수 있습니다. 가장 일반적인 방법은 now(), of(), parse() 메서드를 사용하는 것입니다.
    • LocalDate.now(): 현재 날짜를 반환합니다.
    • LocalDate.of(year, month, day): 지정된 년, 월, 일로 LocalDate 인스턴스를 생성합니다.
    • LocalDate.parse("yyyy-MM-dd"): 문자열을 파싱하여 LocalDate 인스턴스를 생성합니다.
  2. 날짜 조작: LocalDate 클래스는 날짜를 조작하는 다양한 메서드를 제공합니다. 예를 들어, plusDays(), minusWeeks(), withMonth() 등이 있습니다.
  3. 날짜 비교: 두 LocalDate 인스턴스를 비교하기 위한 메서드들도 제공됩니다. isBefore(), isAfter(), isEqual() 메서드를 사용하여 날짜를 비교할 수 있습니다.
  4. 날짜 정보 추출: getYear(), getMonth(), getDayOfMonth() 등의 메서드를 사용하여 년, 월, 일 정보를 추출할 수 있습니다.
  5. 포매팅과 파싱: DateTimeFormatter를 사용하여 LocalDate 객체를 원하는 형식의 문자열로 변환하거나, 문자열에서 LocalDate 객체로 변환할 수 있습니다.
  6. 불변성: LocalDate 인스턴스는 불변 객체입니다. 이는 한 번 생성된 후에는 그 상태를 변경할 수 없다는 것을 의미합니다. 날짜를 조작하는 모든 메서드는 수정된 새로운 인스턴스를 반환합니다.

Methods

메서드 설명
now() 현재 날짜를 반환
of(int year, int month, int dayOfMonth) 주어진 년, 월, 일로 LocalDate 객체 생성
parse(CharSequence text) 문자열을 파싱하여 LocalDate 객체 생성
plusDays(long daysToAdd) 지정된 일 수를 더한 날짜 반환
minusDays(long daysToSubtract) 지정된 일 수를 뺀 날짜 반환
getYear() 년도 반환
getMonthValue() 월을 숫자로 반환
getDayOfMonth() 일 반환
isBefore(LocalDate other) 다른 날짜보다 이전인지 비교
isAfter(LocalDate other) 다른 날짜보다 이후인지 비교
isEqual(LocalDate other) 다른 날짜와 같은지 비교

LocalDate는 날짜 관련 작업을 수행할 때 유용하며, 시간대를 고려하지 않기 때문에 날짜만 필요한 많은 애플리케이션에 적합합니다.

LocalTime

LocalTime (Java Platform SE 8 )
LocalTime의 경우는 위와 다르게 시간 정보만 필요할 때 사용한다.

이 클래스는 시간대를 고려하지 않는 순수한 시간(시, 분, 초, 나노초)을 나타내며, 날짜 정보는 포함되어 있지 않습니다. 날짜 정보와 시간 정보를 함께 사용하고 싶으면 밑의 class를 사용하면 된다.

LocalTime의 주요 특징은 다음과 같습니다:

  1. 인스턴스 생성: LocalTime의 인스턴스는 여러 방법으로 생성할 수 있습니다.
    • LocalTime.now(): 현재 시간(시스템 시계 기준)을 반환합니다.
    • LocalTime.of(int hour, int minute, int second): 지정된 시, 분, 초로 LocalTime 인스턴스를 생성합니다. 나노초를 추가로 지정할 수도 있습니다.
    • LocalTime.parse(CharSequence text): 문자열을 파싱하여 LocalTime 인스턴스를 생성합니다. 문자열 형식은 보통 "HH:mm:ss"입니다.
  2. 시간 조작: LocalTime 클래스는 시간을 조작하는 다양한 메서드를 제공합니다.
    • plusHours(), plusMinutes(), plusSeconds(): 지정된 시간, 분, 초를 현재 시간에 더합니다.
    • minusHours(), minusMinutes(), minusSeconds(): 지정된 시간, 분, 초를 현재 시간에서 뺍니다.
  3. 시간 정보 추출: getHour(), getMinute(), getSecond(), getNano() 등의 메서드를 사용하여 시간, 분, 초, 나노초 정보를 추출할 수 있습니다.
  4. 시간 비교: isBefore(), isAfter() 메서드를 사용하여 다른 LocalTime 인스턴스와 시간을 비교할 수 있습니다.
  5. 포매팅과 파싱: DateTimeFormatter를 사용하여 LocalTime 객체를 원하는 형식의 문자열로 변환하거나, 문자열에서 LocalTime 객체로 변환할 수 있습니다.
  6. 불변성: LocalTime 인스턴스는 불변 객체입니다. 이는 한 번 생성된 후에는 그 상태를 변경할 수 없다는 것을 의미합니다. 시간을 조작하는 모든 메서드는 수정된 새로운 인스턴스를 반환합니다.

LocalTime은 순수한 시간 정보가 필요할 때 유용하게 사용됩니다. 예를 들어, 특정한 시간대를 고려하지 않고 시간만 다루는 애플리케이션에서 매우 유용합니다.

methods

메서드 설명
now() 현재 시간을 반환
of(int hour, int minute, int second) 주어진 시, 분, 초로 LocalTime 객체 생성
parse(CharSequence text) 문자열을 파싱하여 LocalTime 객체 생성
plusHours(long hoursToAdd) 지정된 시간을 더한 시간 반환
minusHours(long hoursToSubtract) 지정된 시간을 뺀 시간 반환
getHour() 시간 반환
getMinute() 분 반환
getSecond() 초 반환
isBefore(LocalTime other) 다른 시간보다 이전인지 비교
isAfter(LocalTime other) 다른 시간보다 이후인지 비교

LocalDateTime

LocalDateTime (Java Platform SE 8 )
LocalDateTime 은 위의 두 개와 다르게 날짜 정보와 시간 정보를 동시에 활용할 수 있는 class이다.
  1. 인스턴스 생성:
    • LocalDateTime.now(): 현재 날짜와 시간을 반환합니다.
    • LocalDateTime.of(int year, int month, int dayOfMonth, int hour, int minute): 주어진 년, 월, 일, 시, 분으로 LocalDateTime 인스턴스를 생성합니다. 초와 나노초를 추가로 지정할 수도 있습니다.
    • LocalDateTime.parse(CharSequence text): 문자열을 파싱하여 LocalDateTime 인스턴스를 생성합니다. 문자열 형식은 일반적으로 "yyyy-MM-ddTHH:mm:ss"입니다.
  2. 날짜와 시간 조작:
    • plusDays(), plusHours(), plusMinutes(): 지정된 일, 시간, 분을 현재 LocalDateTime에 더합니다.
    • minusDays(), minusHours(), minusMinutes(): 지정된 일, 시간, 분을 현재 LocalDateTime에서 뺍니다.
  3. 날짜와 시간 정보 추출:
    • getYear(), getMonth(), getDayOfMonth(): 년, 월, 일 정보를 추출합니다.
    • getHour(), getMinute(), getSecond(): 시간, 분, 초 정보를 추출합니다.
  4. 날짜와 시간 비교:
    • isBefore(), isAfter(): 다른 LocalDateTime 인스턴스와 날짜 및 시간을 비교합니다.
메서드 설명
now() 현재 날짜와 시간을 반환
of(int year, int month, int dayOfMonth, int hour, int minute) 주어진 년, 월, 일, 시, 분으로 LocalDateTime 객체 생성
parse(CharSequence text) 문자열을 파싱하여 LocalDateTime 객체 생성
plusDays(long daysToAdd) 지정된 일 수를 더한 날짜와 시간 반환
minusDays(long daysToSubtract) 지정된 일 수를 뺀 날짜와 시간 반환
getYear() 년도 반환
getMonthValue() 월을 숫자로 반환
getDayOfMonth() 일 반환
getHour() 시간 반환
getMinute() 분 반환
isBefore(LocalDateTime other) 다른 날짜와 시간보다 이전인지 비교
isAfter(LocalDateTime other) 다른 날짜와 시간보다 이후인지 비교

Read more

airflow 구성하고 vscode로 코딩하기

맥에서 했으면 훨씬 구성이 쉬웠겠지만, 그리고 poetry로 했으면 훨씬 쉬웠겠지만 워낙 규모가 있는 라이브러리이다 보니 과정이 어려워 다른 참조들을 보면서 따라했다. 기본적으로 poetry랑 쓰기 어려운 이유는 airflow 내부의 라이브러리에 따라 poetry가 버전을 참조하지 못해서 에러가 나는 경우가 존재한다고 한다. 또한 하나의 문제는 mac에서는 그냥 리눅스가 존재하지만 윈도우에서 하려면 윈도우용 linux인

[Json] dump vs dumps

json은 javascript object notation의 줄임말로 웹 어플리케이션에서 구조화된 데이터를 표현하기 위한 string 기반의 포맷이다. 서버에서 클라인트로 데이터를 전송하여 표현하거나, 그 반대로 클라이언트에서 서버로 보내는 경우들에 사용된다. javascript 객체 문법과 굉장히 유사하지만 워낙에 범용성이 넓게 설계되어 있어서 다른 언어들에도 많이 사용된다. 기본적으로 python 에는 json 이 내장 모듈이다. 바로 import json해주면