📄 dateexample.java
字号:
// -----------------------------------------------------------------------------
// DateExample.java
// -----------------------------------------------------------------------------
/*
* =============================================================================
* Copyright (c) 1998-2005 Jeffrey M. Hunter. All rights reserved.
*
* All source code and material located at the Internet address of
* http://www.idevelopment.info is the copyright of Jeffrey M. Hunter, 2005 and
* is protected under copyright laws of the United States. This source code may
* not be hosted on any other site without my express, prior, written
* permission. Application to host any of the material elsewhere can be made by
* contacting me at jhunter@idevelopment.info.
*
* I have made every effort and taken great care in making sure that the source
* code and other content included on my web site is technically accurate, but I
* disclaim any and all responsibility for any loss, damage or destruction of
* data or any other property which may arise from relying on it. I will in no
* case be liable for any monetary damages arising from such loss, damage or
* destruction.
*
* As with any code, ensure to test this code in a development environment
* before attempting to run it in production.
* =============================================================================
*/
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/**
* -----------------------------------------------------------------------------
* Used to provide an example that exercises most of the functionality of the
* java.util.Date class. A Date object represents a precise moment in time,
* down to the millisecond. Dates are represented as a long that counts the
* number of milliseconds since midnight, January 1, 1970, Greenwich Meantime.
*
* @version 1.0
* @author Jeffrey M. Hunter (jhunter@idevelopment.info)
* @author http://www.idevelopment.info
* -----------------------------------------------------------------------------
*/
public class DateExample {
/**
* Helper utility used to print
* a String to STDOUT.
* @param s String that will be printed to STDOUT.
*/
private static void prt(String s) {
System.out.println(s);
}
private static void prt() {
System.out.println();
}
private static void doDateExample() {
// To create a Date object for the current
// date and time use the noargs Date() constructor like this:
prt("CURRENT DATE/TIME");
prt("=======================================================");
Date now = new Date();
prt(" new Date() : " + now);
prt();
// To create a Date object for a specific time, pass the number of
// milliseconds since midnight, January 1, 1970, Greenwich Meantime
// to the constructor, like this:
//
// Establish a date object set in milliseconds
// relative to 1/1/1970 GMT
prt("DATE OBJECT FOR SPECIFIC TIME");
prt("=======================================================");
Date specificDate1 = new Date(24L*60L*60L*1000L);
Date specificDate2 = new Date(0L);
prt(" new Date(24L*60L*60L*1000L) : " + specificDate1);
prt(" new Date(0L) : " + specificDate2);
prt();
// You can return the number of milliseconds in the Date
// as a long, using the getTime() method. For example,
// to time a block of code, you might do this
prt("USE getTime() TO RETURN MILLISECONDS");
prt("=======================================================");
Date startTime = new Date();
prt(" Start Time : " + startTime);
// ....
// Insert ant "timed code" here...
// ...
System.out.print(" ");
for (int i = 0; i < 10000000; i++) {
if ((i % 1000000) == 0) {
System.out.print(".");
}
// More "timed" code
}
prt();
Date endTime = new Date();
prt(" End Time : " + endTime);
long elapsed_time = endTime.getTime() - startTime.getTime();
prt("That took " + elapsed_time + " milliseconds");
prt();
// You can change a Date by passing the new date as a number of
// milliseconds since midnight, January 1, 1970, GMT, to the setTime()
// method, like this:
prt("USE gsetTime() TO CHANGE A DATE OBJECT");
prt("=======================================================");
Date changeDate = new Date();
prt(" new Date() : " + changeDate);
changeDate.setTime(24L*60L*60L*1000L);
prt(" setTime(24L*60L*60L*1000L) : " + changeDate);
prt();
// The before() method returns true if this Date is before the Date
// argument, false if it's not.
// For example
// if (midnight_jan2_1970.before(new Date())) {
// The after() method returns true if this Date is after the Date
// argument, false if it's not.
// For example
// if (midnight_jan2_1970.after(new Date())) {
// The Date class also has the usual hashCode(),
// equals(), and toString() methods.
prt("COMPARE DATES USING: before(), after(), equals()");
prt("=======================================================");
Date compareDateNow1 = new Date();
Date compareDateNow2 = (Date) compareDateNow1.clone();
Date compareDate1970 = new Date(24L*60L*60L*1000L);
prt(" Compare (Equals):");
prt(" - " + compareDateNow1);
prt(" - " + compareDateNow2);
if (compareDateNow1.equals(compareDateNow2)) {
prt(" - The two dates are equal.");
} else {
prt(" - The two dates are NOT equal.");
}
prt();
prt(" Compare (Equals):");
prt(" - " + compareDateNow1);
prt(" - " + compareDate1970);
if (compareDateNow1.equals(compareDate1970)) {
prt(" - The two dates are equal.");
} else {
prt(" - The two dates are NOT equal.");
}
prt();
prt(" Compare (Before):");
prt(" - " + compareDateNow1);
prt(" - " + compareDate1970);
if (compareDateNow1.before(compareDate1970)) {
prt(" - " + compareDateNow1 + " comes before " + compareDate1970 + ".");
} else {
prt(" - " + compareDateNow1 + " DOES NOT come before " + compareDate1970 + ".");
}
prt();
prt(" Compare (After):");
prt(" - " + compareDateNow1);
prt(" - " + compareDate1970);
if (compareDateNow1.after(compareDate1970)) {
prt(" - " + compareDateNow1 + " comes after " + compareDate1970 + ".");
} else {
prt(" - " + compareDateNow1 + " DOES NOT come after " + compareDate1970 + ".");
}
prt();
prt("RETRIEVE MILLISECONDS");
prt("=======================================================");
// Establish a date object set in milliseconds relative to 1/1/1970 GMT
Date y = new Date(1000L*60*60*24);
// Retrieve the number of milliseconds since 1/1/1970 GMT (31536000000)
long n = y.getTime();
prt(" Number of milliseconds since 1/1/1970 (GMT) : " + n);
// Computes a hashcode for the date object (1471228935)
int i = y.hashCode();
prt(" Hash code for object : " + i);
// Retrieve the string representation of the date (Thu Dec 31 16:00:00 PST 1970)
String s = y.toString();
prt(" String representation of date : " + s);
prt();
prt("PARSE STRING TO DATE");
prt("=================================================================");
Date newDate;
String inputDate = "1994-02-14";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
System.out.print(" " + inputDate + " parses as ");
try {
newDate = formatter.parse(inputDate);
prt(newDate + ".");
} catch (ParseException e) {
prt("Unparseable using " + formatter + ".");
}
prt();
}
public static void main(String[] args) {
prt();
doDateExample();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -