답변:
SimpleDateFormat
클래스를 사용하여 날짜 형식을 원하는 형식으로 사용할 수 있습니다 .
예제에 대한 아이디어를 얻을 수있는이 링크를 확인하십시오.
예를 들면 다음과 같습니다.
String dateStr = "04/05/2010";
SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy");
Date dateObj = curFormater.parse(dateStr);
SimpleDateFormat postFormater = new SimpleDateFormat("MMMM dd, yyyy");
String newDateStr = postFormater.format(dateObj);
자세한 예제는 here입니다 .이 예제를 통해 SimpleDateFormat 클래스의 개념을 이해하는 것이 좋습니다.
Date c = Calendar.getInstance().getTime();
System.out.println("Current time => " + c);
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy", Locale.getDefault());
String formattedDate = df.format(c);
java.util.Date
, java.util.Calendar
그리고 java.text.SimpleDateFormat
지금 기존 에 의해 대체, java.time의 나중에 자바 8에 내장 된 클래스. Oracle의 Tutorial 을 참조하십시오 .
이 yyyy-MM-dd 형식으로 현재 날짜를 가져 오는 간단한 한 줄 코드 는 원하는 형식을 사용할 수 있습니다.
String date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
이것은 자바 기반이므로 안드로이드와 관련이 없으므로 사용할 수 있습니다.
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
return dateFormat.format(date);
}
이 시도,
SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyyMMddHHmmssSS");
Date myDate = new Date();
String filename = timeStampFormat.format(myDate);
CharSequence s = DateFormat.getDateInstance().format("MMMM d, yyyy ");
먼저 인스턴스가 필요합니다
String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
// Date 클래스를 java.util 로 가져 오기
아래 코드는 시간과 날짜를 모두 표시합니다
Calendar cal = Calendar.getInstance();
cal.getTime().toString();
나는 현대 답변을 제공하고 있습니다.
현재 날짜를 얻으려면
LocalDate today = LocalDate.now(ZoneId.of("America/Hermosillo"));
이것은 LocalDate
프로그램에서 날짜를 유지하기 위해 사용해야 하는 오브젝트를 제공합니다 . A LocalDate
는 시간이없는 날짜입니다.
날짜를 사용자에게 표시해야하는 경우에만 사용자의 로캘에 적합한 문자열로 형식을 지정하십시오.
DateTimeFormatter userFormatter
= DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);
System.out.println(today.format(userFormatter));
이 영어 코드를 오늘 미국 영어 로케일에서 실행했을 때 출력 결과는 다음과 같습니다.
2019 년 7 월 13 일
더 짧게하려면 FormatStyle.MEDIUM
또는을 지정하십시오 FormatStyle.SHORT
. DateTimeFormatter.ofLocalizedDate
기본 서식 로캘을 사용하므로 요점은 로케일마다 다른 해당 로케일에 적합한 출력을 제공한다는 것입니다.
사용자에게 출력 형식에 대한 특별한 요구 사항이있는 경우 형식 패턴 문자열을 사용하십시오.
DateTimeFormatter userFormatter = DateTimeFormatter.ofPattern(
"d-MMM-u", Locale.forLanguageTag("ar-AE"));
2019 년 13 월 14 일
최신 Java 날짜 및 시간 API 인 java.time을 사용하고 권장합니다. DateFormat
, SimpleDateFormat
, Date
과 Calendar
질문에 사용 및 / 또는 다른 답변의 많은 잘못 설계 및 긴 구식이된다. 그리고 java.time은 작업하기가 훨씬 좋습니다.
예. java.time은 이전 및 최신 Android 장치에서 잘 작동합니다. 최소한 Java 6 만 있으면됩니다 .
org.threeten.bp
하위 패키지 를 사용 하여 날짜 및 시간 클래스를 가져와야합니다 .java.time
설명되었다.java.time
Java 6 및 7 의 백 포트 인 ThreeTen Backport 프로젝트 (ThreeTen for JSR-310).DateTimeUtils.toDate(yourLocalDateTime.atZone(ZoneId.systemDefault()).toInstant())
. 내장 java.time을 사용하는 경우 : Date.from(yourLocalDateTime.atZone(ZoneId.systemDefault()).toInstant())
. java.time.LocalDateTime과 java.util.Date 사이의 변환을 참조하십시오 . JodaStephen의 권위있는 답변 이 있으며 백 포트 사용을 보여주는 답변 도 있습니다 .
public static String getcurrentDateAndTime(){
Date c = Calendar.getInstance().getTime();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
String formattedDate = simpleDateFormat.format(c);
return formattedDate;
}
// String currentdate= getcurrentDateAndTime();
28-Dec-2011
하십니까)? 어쨌든 그것은 여전히 악명 높고 오래 된 구식 SimpleDateFormat
클래스를 사용하고 있습니다. 더 이상 답변이 필요하지 않습니다.
현재 로캘 (장치 로캘!)에서 현재 날짜를 가져 오는 가장 간단한 방법 :
String currentDate = DateFormat.getDateInstance().format(Calendar.getInstance().getTime());
다른 스타일의 날짜를 원한다면 다음을 사용하십시오 getDateInstance(int style)
.
DateFormat.getDateInstance(DateFormat.FULL).format(Calendar.getInstance().getTime());
기타 스타일 : DateFormat.LONG
, DateFormat.DATE_FIELD
, DateFormat.DAY_OF_YEAR_FIELD
, 등 (사용 CTRL+Space그들 모두를 보려면)
시간이 필요한 경우 :
String currentDateTime = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.LONG).format(Calendar.getInstance().getTime());
나는 이미 이것을 사용했다 :
Date What_Is_Today=Calendar.getInstance().getTime();
SimpleDateFormat Dateformat = new SimpleDateFormat("dd-MM-yyyy");
String Today=Dateformatf.format(What_Is_Today);
Toast.makeText(this,Today,Toast.LENGTH_LONG).show();
처음에 나는 시간을 얻은 다음 간단한 날짜 형식 (19-6-2018과 같은 날짜를 얻기 위해)을 선언 한 다음 형식을 사용하여 날짜를 문자열로 변경합니다.
간단한 날짜 형식을 얻으려면 한 줄의 코드 만 사용하십시오.
SimpleDateFormat.getDateInstance().format(Date())
출력 : 18-5 월 2020
SimpleDateFormat.getDateTimeInstance().format(Date())
출력 : 18-May-2020 11:00:39 AM
SimpleDateFormat.getTimeInstance().format(Date())
출력 : 11:00:39 AM
이 답변 이이 날짜 및 시간 형식을 얻기에 충분하기를 바랍니다 ... :)
SimpleDateFormat
과 DateFormat
클래스를. 적어도 첫 번째 옵션은 아닙니다. 그리고 예약 없이는 아닙니다. 오늘날 우리는 java.time
최신 Java 날짜 및 시간 API 와 그 기능 이 훨씬 뛰어납니다 DateTimeFormatter
. 예, Android에서 사용할 수 있습니다. 이전 Android의 경우 Android 프로젝트에서 ThreeTenABP를 사용하는 방법을 참조하십시오 .
이것은 내가 사용한 코드입니다 .
final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
// Set current date into textview
tvDisplayDate.setText(new StringBuilder()
.append(month + 1).append("-") // Month is 0 based, add 1
.append(day).append("-")
.append(year).append(" Today is :" + thursday ) );
// Set current date into datepicker
dpResult.init(year, month, day, null);
DateFormat
2011 년에이 질문을 받았을 때 클래스를 사용하는 것은 괜찮 았지만, 그 클래스와 그 서브 클래스SimpleDateFormat
는 항상 번거롭고 오래되었습니다. 나는 그것들을 사용하지 말고 현대 Java 날짜 및 시간 API 인 java.time을 살펴 보는 것이 좋습니다 .