Как получить текущую дату / время в Java - PullRequest
640 голосов
/ 03 марта 2011

Какой лучший способ получить текущую дату / время в Java?

Ответы [ 26 ]

1 голос
/ 10 февраля 2018
 System.out.println( new SimpleDateFormat("yyyy:MM:dd - hh:mm:ss a").format(Calendar.getInstance().getTime()) );
    //2018:02:10 - 05:04:20 PM

дата / время с AM / PM

1 голос
/ 31 мая 2016
import java.util.*;
import java.text.*;

public class DateDemo {
   public static void main(String args[]) {
      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
      System.out.println("Current Date: " + ft.format(dNow));
   }
}

Вы можете использовать дату для получения текущих данных.с использованием SimpleDateFormat получить формат

0 голосов
/ 14 мая 2019

просто попробуйте этот код:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CurrentTimeDateCalendar {
    public static void getCurrentTimeUsingDate() {
        Date date = new Date();
        String strDateFormat = "hh:mm:ss a";
        DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
        String formattedDate= dateFormat.format(date);
        System.out.println("Current time of the day using Date - 12 hour format: " + formattedDate);
    }
    public static void getCurrentTimeUsingCalendar() {
        Calendar cal = Calendar.getInstance();
        Date date=cal.getTime();
        DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
        String formattedDate=dateFormat.format(date);
        System.out.println("Current time of the day using Calendar - 24 hour format: "+ formattedDate);
    }
}

который является примером вывода:

Текущее время дня с использованием даты - 12-часовой формат: 11:13:01 PM

Текущее время дня с использованием календаря - 24-часовой формат: 23: 13: 01

больше информации о:

Получение текущей даты и времени в Java

0 голосов
/ 18 февраля 2019

Я создал этот метод, он работает для меня ...

public String GetDay() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd")));
}

public String GetNameOfTheDay() {
    return String.valueOf(LocalDateTime.now().getDayOfWeek());
}

public String GetMonth() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("MM")));
}

public String GetNameOfTheMonth() {
    return String.valueOf(LocalDateTime.now().getMonth());
}

public String GetYear() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy")));
}

public boolean isLeapYear(long year) {
    return Year.isLeap(year);
}

public String GetDate() {
    return GetDay() + "/" + GetMonth() + "/" + GetYear();
}

public String Get12HHour() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("hh")));
}

public String Get24HHour() {
    return String.valueOf(LocalDateTime.now().getHour());
}

public String GetMinutes() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("mm")));
}

public String GetSeconds() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("ss")));
}

public String Get24HTime() {
    return Get24HHour() + ":" + GetMinutes();
}

public String Get24HFullTime() {
    return Get24HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}

public String Get12HTime() {
    return Get12HHour() + ":" + GetMinutes();
}

public String Get12HFullTime() {
    return Get12HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}
0 голосов
/ 13 января 2018

Я добавлю этот ответ, потому что это все, что мне было нужно, когда у меня был тот же вопрос:

Date currentDate = new Date(System.currentTimeMillis());

currentDate теперь ваша текущая дата в объекте Java Date.

0 голосов
/ 23 июля 2017

Вы можете использовать Date объект и формат самостоятельно.Трудно отформатировать и требовать больше кодов, например,

Date dateInstance = new Date();
int year = dateInstance.getYear()+1900;//Returns:the year represented by this date, minus 1900.
int date = dateInstance.getDate();
int month = dateInstance.getMonth();
int day = dateInstance.getDay();
int hours = dateInstance.getHours();
int min = dateInstance.getMinutes();
int sec = dateInstance.getSeconds();

String dayOfWeek = "";
switch(day){
    case 0:
        dayOfWeek = "Sunday";
        break;
    case 1:
        dayOfWeek = "Monday";
        break;
    case 2:
        dayOfWeek = "Tuesday";
        break;
    case 3:
        dayOfWeek = "Wednesday";
        break;
    case 4:
        dayOfWeek = "Thursday";
        break;
    case 5:
        dayOfWeek = "Friday";
        break;
    case 6:
        dayOfWeek = "Saturday";
        break;
}
System.out.println("Date: " + year +"-"+ month + "-" + date + " "+ dayOfWeek);
System.out.println("Time: " + hours +":"+ min + ":" + sec);

output:

Date: 2017-6-23 Sunday
Time: 14:6:20

Как вы можете видеть, это худший способ сделать это и в соответствии сДокументация Oracle: устарела .

Oracle doc:

Класс Date представляет определенный момент времени с точностью до миллисекунды.

До JDK 1.1 класс Date имел две дополнительные функции.Это позволило интерпретировать даты как значения года, месяца, дня, часа, минуты и секунды.Это также позволило форматировать и анализировать строки даты.К сожалению, API для этих функций не поддается интернационализации.Начиная с JDK 1.1, класс Calendar должен использоваться для преобразования полей даты и времени, а класс DateFormat должен использоваться для форматирования и анализа строк даты.Соответствующие методы в Date устарели.

Таким образом, вы можете использовать Calendar class,

Calendar.YEAR;
//and lot more

. Чтобы получить текущее время, вы можетеuse:

Calendar rightNow = Calendar.getInstance();

Doc:

Как и другие классы, чувствительные к локали, Calendar предоставляет метод класса getInstance для получения обычно полезного объекта этого типа,Метод getInstance календаря возвращает объект Calendar, поля календаря которого были инициализированы с текущей датой и временем

Ниже кода для получения только даты

Date rightNow = Calendar.getInstance().getTime();
System.out.println(rightNow);

Также,Calendar класс имеет подклассы.GregorianCalendar является одним из них и конкретным подклассом Calendar и предоставляет стандартную календарную систему, используемую в большинстве стран мира.

Пример использования GregorianCalendar:

Calendar cal = new GregorianCalendar();
int hours = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
int ap = cal.get(Calendar.AM_PM);

String amVSpm;
if(ap == 0){
    amVSpm = "AM";
}else{
    amVSpm = "PM";
}

String timer = hours + "-" + minute + "-" + second + " " +amVSpm;
System.out.println(timer);

Вы можете использовать SimpleDateFormat, простой и быстрый способ форматирования даты:

String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

String date = simpleDateFormat.format(new Date());
System.out.println(date);

Прочитайте это Учебное пособие Якоба Дженкова: Java SimpleDateFormat .

Как уже упоминалось, когда нам нужно было манипулировать датами, у нас не было простого и лучшего способа или мы не могли удовлетворить встроенные классы, API.

Например,Когда нам нужно различаться между двумя датами , когда нам нужно сравнить две даты (для этого есть встроенный метод) и многие другие.Нам пришлось использовать сторонние библиотеки.Одним из хороших и популярных является Joda Time.

Также читайте:

.Сейчас самое счастливое (в java 8) - никому не нужно скачивать и использовать библиотеки по каким-либо причинам.Простой пример, чтобы получить текущую дату и время в Java 8,

LocalTime localTime = LocalTime.now();
System.out.println(localTime);

//with time zone
LocalTime localTimeWtZone = LocalTime.now(ZoneId.of("GMT+02:30"));
System.out.println(localTimeWtZone);

Один из хороших постов в блоге, чтобы прочитать о дате Java 8 .

И помнитьчтобы узнать больше о дате и времени Java, потому что есть намного больше способов и / или полезных способов, которые вы можете получить / использовать.

РЕДАКТИРОВАТЬ:

Согласно комментарию @BasilBourque, старые классные классы даты и времени, такие как java.util.Date, java.util.Calendar и java.text.SimpleTextFormat, теперь наследуют , вытесненные java.time классы .

...