Java.util 변환.날짜 to 문자열
a를 변환하고 싶다.java.util.Date
A에 반대하다String
자바어로
은 형은(은은)이다.2010-05-30 22:15:52
메서드를 사용하여 날짜를 문자열로 변환:
String pattern = "MM/dd/yyyy HH:mm:ss";
// Create an instance of SimpleDateFormat used for formatting
// the string representation of date according to the chosen pattern
DateFormat df = new SimpleDateFormat(pattern);
// Get the today date using Calendar object.
Date today = Calendar.getInstance().getTime();
// Using DateFormat format method we can create a string
// representation of a date with the defined format.
String todayAsString = df.format(today);
// Print the result!
System.out.println("Today is: " + todayAsString);
출처: http://www.kodejava.org/examples/86.html
Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = formatter.format(date);
Commons-lang DateFormatUtils는 goodies로 가득 차 있다(클래스 경로에 Commons-lang이 있는 경우)
//Formats a date/time into a specific pattern
DateFormatUtils.format(yourDate, "yyyy-MM-dd HH:mm:SS");
tl;dr
myUtilDate.toInstant() // Convert `java.util.Date` to `Instant`.
.atOffset( ZoneOffset.UTC ) // Transform `Instant` to `OffsetDateTime`.
.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME ) // Generate a String.
.replace( "T" , " " ) // Put a SPACE in the middle.
2014-11-14 14:05:09
자바.시간
현대적인 방법은 문제가 되는 오래된 기존 날짜/시간 클래스를 대체하는 자바.시간 클래스를 사용하는 것이다.
먼저를 하십시오.java.util.Date
완전히Instant
. 클래스는 시간 표시 막대의 한 순간을 UTC로 나타내며 분해능은 10진수 9자리까지입니다.
Java.time으로의 변환은 이전 클래스에 추가된 새로운 메서드에 의해 수행된다.
Instant instant = myUtilDate.toInstant();
두 분 다.java.util.Date
그리고java.time.Instant
UTC에 있다.날짜와 시간을 UTC로 보고 싶다면 그렇게 하십시오.부르다toString
표준 ISO 8601 형식의 문자열을 생성한다.
String output = instant.toString();
2014-11-14T14:05:09Z
, 의 경환 transform transform transform transform를 가 있다Instant
보다 융통성 있게
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );
odt.toString(): 2020-05-01T21:25:35.957Z
IdeOne.com에서 실시간으로 코드를 실행하십시오.
원하는 형식으로 문자열을 가져오려면 를 지정하십시오. 사용자 정의 형식을 지정할 수 있다.하지만 미리 정의된 포맷터()ISO_LOCAL_DATE_TIME
중 하나를 사용하고T
SPACE와 함께 출력되는.
String output = odt.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
.replace( "T" , " " );
2014-11-14 14:05:09
그런데 나는 당신이 일부러 UTC로부터 오프셋이나 시간대 정보를 잃어버리는 이런 종류의 포맷을 추천하지 않는다.해당 문자열의 날짜 시간 값의 의미에 대한 모호성 생성
또한 날짜 시간 값에 대한 문자열의 표현에서 일부 초가 무시되고(효과적으로 잘리기) 있으므로 데이터 손실을 주의하십시오.
같은 순간을 특정 지역의 벽시계 시간의 렌즈를 통해 보려면 a를 적용하십시오.ZoneId
A를 받다ZonedDateTime
.
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );
zdt.toString(): 2014-11-14T14:05:09-05:00[미국/몬트리얼]
형식화된 문자열을 생성하려면 위와 동일하게 하되 대체하십시오.odt
와 함께zdt
.
String output = zdt.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
.replace( "T" , " " );
2014-11-14 14:05:09
이 코드를 매우 많이 실행하는 경우, 좀 더 효율적이면서 다음 호출을 피할 수 있다.String::replace
그 전화를 끊는 것은 또한 당신의 코드를 더 짧게 만든다.원하는 경우 고유한 형식 지정 패턴을 직접 지정하십시오.DateTimeFormatter
반대하다이 인스턴스를 상수 또는 멤버로 캐시하여 재사용하십시오.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-dd HH:mm:ss" ); // Data-loss: Dropping any fractional second.
인스턴스를 전달하여 해당 포맷터를 적용하십시오.
String output = zdt.format( f );
java.time 정보
Java.time 프레임워크는 Java 8 이상에 내장되어 있다.이러한 수업들은 , , & .와 같은 골치 아픈 옛날 데이트 수업을 대체한다.
현재 유지보수 모드에 있는 Joda-Time 프로젝트는 Java.time으로의 마이그레이션을 권고한다.
자세한 내용은 Oracle 자습서를 참조하십시오.그리고 스택 오버플로를 검색하여 많은 예와 설명을 참조하십시오.
대부분의 Java.time 기능은 ThreeTen-Backport의 Java 6 & 7에 역포팅되며, 추가로 ThreeTenABP의 Android에 적응된다(사용 방법 참조...).
ThreeTen-Extra 프로젝트는 추가 클래스와 함께 java.time을 확장한다.이 프로젝트는 Java.time에 향후 추가될 가능성이 있는 입증의 장이다.
일반 노드의 자바에 있는 알텐제 1-리너:
String.format("The date: %tY-%tm-%td", date, date, date);
String.format("The date: %1$tY-%1$tm-%1$td", date);
String.format("Time with tz: %tY-%<tm-%<td %<tH:%<tM:%<tS.%<tL%<tz", date);
String.format("The date and time in ISO format: %tF %<tT", date);
이것은 대신 Formatter와 상대 인덱싱을 사용한다.SimpleDateFormat
그건 안전하지 않아, btw.
조금 더 반복적이지만 한 가지 진술만 있으면 된다.이것은 경우에 따라 유용할 수 있다.
왜 조다(org.joda.time)를 사용하지 않는가.날짜 시간)?기본적으로는 원라이너다.liner)이다.
Date currentDate = GregorianCalendar.getInstance().getTime();
String output = new DateTime( currentDate ).toString("yyyy-MM-dd HH:mm:ss");
// output: 2014-11-14 14:05:09
SimpleDateFormat을 찾고 있는 것 같은데.
형식: yyyy-MM-dd kk:mm:ss
단발성;)
날짜를 가져오려면
String date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
시간을 얻으려면
String time = new SimpleDateFormat("hh:mm", Locale.getDefault()).format(new Date());
날짜와 시간을 가져오려면
String dateTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.getDefaut()).format(new Date());
해피 코딩 :)
public static String formateDate(String dateString) {
Date date;
String formattedDate = "";
try {
date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss",Locale.getDefault()).parse(dateString);
formattedDate = new SimpleDateFormat("dd/MM/yyyy",Locale.getDefault()).format(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return formattedDate;
}
날짜로부터 시간만 필요한 경우 String의 기능만 사용할 수 있다.
Date test = new Date();
String dayString = test.toString();
String timeString = dayString.substring( 11 , 19 );
이렇게 하면 String의 시간 부분이 자동으로 잘려져 안에 저장된다.timeString
.
다음은 레거시를 포맷하기 위해 새로운 Java 8 Time API를 사용하는 예들이다. java.util.Date
:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS Z")
.withZone(ZoneOffset.UTC);
String utcFormatted = formatter.format(date.toInstant());
ZonedDateTime utcDatetime = date.toInstant().atZone(ZoneOffset.UTC);
String utcFormatted2 = utcDatetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS Z"));
// gives the same as above
ZonedDateTime localDatetime = date.toInstant().atZone(ZoneId.systemDefault());
String localFormatted = localDatetime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
// 2011-12-03T10:15:30+01:00[Europe/Paris]
String nowFormatted = LocalDateTime.now().toString(); // 2007-12-03T10:15:30.123
에 대해 좋다.DateTimeFormatter
스레드 안전하므로 효율적으로 캐슁할 수 있는지 여부(비슷함)SimpleDateFormat
).
미리 정의된 조광기 목록 및 패턴 표기 참조
크레딧:
LocalDateTime으로 날짜를 구문 분석/포맷하는 방법?(자바 8)
Java8 Java.util.날짜를 Java.time으로 변환.ZonedDateTime
Java 8 ZonedDateTime과 OffsetDateTime의 차이점은?
가장 쉽게 사용할 수 있는 방법은 다음과 같다.
currentISODate = new Date().parse("yyyy-MM-dd'T'HH:mm:ss", "2013-04-14T16:11:48.000");
여기서 "yyy-MM-ddt"HH:mm:ss"는 판독 날짜의 형식이다.
출력: 2013년 4월 14일 16:11:48 EEST
참고: HH vs hh - HH는 24시간 형식을 가리킴 - hh는 12시간 형식을 가리킴
이것을 사용해 보십시오.
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class Date
{
public static void main(String[] args)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = "2013-05-14 17:07:21";
try
{
java.util.Date dt = sdf.parse(strDate);
System.out.println(sdf.format(dt));
}
catch (ParseException pe)
{
pe.printStackTrace();
}
}
}
출력:
2013-05-14 17:07:21
Java에서 날짜 및 시간 형식에 대한 자세한 내용은 아래 링크를 참조하십시오.
public static void main(String[] args)
{
Date d = new Date();
SimpleDateFormat form = new SimpleDateFormat("dd-mm-yyyy hh:mm:ss");
System.out.println(form.format(d));
String str = form.format(d); // or if you want to save it in String str
System.out.println(str); // and print after that
}
이거 시도해보자.
public static void main(String args[]) {
Calendar cal = GregorianCalendar.getInstance();
Date today = cal.getTime();
DateFormat df7 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
String str7 = df7.format(today);
System.out.println("String in yyyy-MM-dd format is: " + str7);
} catch (Exception ex) {
ex.printStackTrace();
}
}
또는 유틸리티 함수
public String convertDateToString(Date date, String format) {
String dateStr = null;
DateFormat df = new SimpleDateFormat(format);
try {
dateStr = df.format(date);
} catch (Exception ex) {
ex.printStackTrace();
}
return dateStr;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = "2010-05-30 22:15:52";
java.util.Date formatedDate = sdf.parse(date); // returns a String when it is parsed
System.out.println(sdf.format(formatedDate)); // the use of format function returns a String
Date date = new Date();
String strDate = String.format("%tY-%<tm-%<td %<tH:%<tM:%<tS", date);
원 라인 옵션
이 옵션은 실제 날짜를 쉽게 쓸 수 있는 한 줄을 얻는다.
제품은 이 제품을 사용하고 있다는
Calendar.class
그리고SimpleDateFormat
그리고 자바8에서 사용하는 것은 논리적이지 않다.
yourstringdate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
참조URL: https://stackoverflow.com/questions/5683728/convert-java-util-date-to-string
'programing' 카테고리의 다른 글
SCSS alias in Vue SFC via Rollup (0) | 2022.04.15 |
---|---|
로그인하지 않은 경우 글로벌 사이드바 제거 방법(vuetify) (0) | 2022.04.15 |
Composition API(Vue 3)에서 Vuex 게터를 보는 방법 (0) | 2022.04.15 |
Java에서 변수의 메모리 주소 (0) | 2022.04.15 |
Vuex mapState 기능에 유형을 제공하는 방법 (0) | 2022.04.15 |