본문 바로가기
프로그래밍/Kotlin

[Kotlin] 날짜간 차이 계산 및 형식변환

by Youngs_ 2021. 9. 15.
// String to date 형식 변환 예제
import java.time.LocalDate
import java.time.format.DateTimeFormatter

fun main(args: Array<String>) {
    val string = "2019년 01월 10일"
    val formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일")
    val date: LocalDate = LocalDate.parse(string, formatter)

    println(date)
    println(date.format(formatter))
}

////////출력////////
2019-01-10
2019년 01월 10일
---------------------------------------------------------------
//특정 시간의 LocalData, LocalDateTime을 생성
LocalDate.of(2019, 3, 22) // 2019년 3월 22일
LocalDateTime.of(2019, 3, 22, 10, 10, 10) // 2019년 3월 22일 10시 10분 10초
// 두 날짜의 시간 차이를 구하는 예제

var sampleDate = "2020-06-14 10:12:14"
var date = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") .parse(sampleDate) 
var today = Calendar.getInstance()
var calculateDate = (today.time.time - date.time) / (1000 * 60 * 60 * 24)

/*
today.time = 현재날짜를 Date형식으로 구하는것이고 today.time.time은 Date형식으로 구한 현재 날짜를 ms단위로 바꾼것이다.
.time으로 얻은 값의 단위는 ms이고 1000을 곱하면 1초가된다
.time = gettime()이다.
gettime()은 1970년 1월 1일 00:00을 기준으로 한다.

LocalDateTime.now() 는 현재 시간및 날짜를 구할수있다.
*/

 

문자 날짜 및 시간 요소  표시 예제
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year (context sensitive) Month July; Jul; 07
L Month in year (standalone form) Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00

 

예제 패턴

날짜 및 시간 패턴 결과
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" 2001-07-04T12:08:56.235-07:00
"YYYY-'W'ww-u" 2001-W27-3



출처: https://junghn.tistory.com/entry/JAVA-자바-날짜-포맷-변경-방법SimpleDateFormat-yyyyMMdd [코딩 시그널]

댓글