"Здравей, Амиго. Искам да ти разкажа за един интересен тип, наречен Date. Този тип съхранява датата и часа и може също да измерва времеви интервали."
„Звучи интересно. Моля, продължете.“
„Всеки обект Date съхранява време в доста интересна форма: броят мorсекунди от 1 януари 1970 г., GMT.“
"Уау!"
„Да. Това число е толкова голямо, че няма достатъчно място за него в int , така че трябва да се съхранява в long . Но е наистина удобно за изчисляване на разликата между две дати. Просто правите изваждане, за да намерите разликата с точност до мorсекунда. Освен това решава проблема с линията за дата и лятното часово време."
"Най-интересната част е, че всеки обект се инициализира с текущия час при създаването си. За да знаете текущия час, просто трябва да създадете обект Date."
"Как работите с него?"
"Ето няколко примера:"
public static void main(String[] args) throws Exception
{
Date today = new Date();
System.out.println("Current date: " + today);
}
public static void main(String[] args) throws Exception
{
Date currentTime = new Date(); // Get the current date and time
Thread.sleep(3000); // Wait 3 seconds (3000 milliseconds)
Date newTime = new Date(); // Get the new current time
long msDelay = newTime.getTime() - currentTime.getTime(); // Calculate the difference
System.out.println("Time difference is: " + msDelay + " in ms");
}
public static void main(String[] args) throws Exception
{
Date startTime = new Date();
long endTime = startTime.getTime() + 5000; // +5 seconds
Date endDate = new Date(endTime);
Thread.sleep(3000); // Wait 3 seconds
Date currentTime = new Date();
if(currentTime.after(endDate))// Check whether currentTime is after endDate
{
System.out.println("End time!");
}
}
public static void main(String[] args) throws Exception
{
Date currentTime = new Date();
int hours = currentTime.getHours();
int mins = currentTime.getMinutes();
int secs = currentTime.getSeconds();
System.out.println("Time since midnight " + hours + ":" + mins + ":" + secs);
}
public static void main(String[] args) throws Exception
{
Date yearStartTime = new Date();
yearStartTime.setHours(0);
yearStartTime.setMinutes(0);
yearStartTime.setSeconds(0);
yearStartTime.setDate(1); // First day of the month
yearStartTime.setMonth(0); // January (the months are indexed from 0 to 11)
Date currentTime = new Date();
long msTimeDifference = currentTime.getTime() - yearStartTime.getTime();
long msDay = 24 * 60 * 60 * 1000; // The number of milliseconds in 24 hours
int dayCount = (int) (msTimeDifference/msDay); // The number of full days
System.out.println("Days since the start of the year: " + dayCount);
}
„ getTime()
Методът връща броя мorсекунди, съхранени в обект Date.“
„ after()
Методът проверява дали датата, на която сме извикали метода, идва след датата, предадена на метода.“
„ getHours(), getMinutes(), getSeconds()
Методите връщат съответно броя часове, minutesи и секунди за обекта, на който са бor извикани.“
„Освен това, в последния пример можете да видите, че можете да промените датата/часа, съхранени в обект Date . Получаваме текущия час и дата и след това нулираме часовете, minutesите и секундите на 0. Също така задаваме януари като месец и 1 като ден от месеца. Така обектът yearStartTime
съхранява датата 1 януари на текущата година и часа 00:00:00."
„След това отново получаваме текущата дата ( currentTime
), изчисляваме разликата между двете дати в мorсекунди и я съхраняваме в msTimeDifference
.“
„След това разделяме msTimeDifference
на броя мorсекунди за 24 часа, за да получим броя на пълните дни от началото на текущата година до днес.“
„Уау! Това е толкова готино!“
GO TO FULL VERSION