Java中對時間、日期的處理
在平時的coding工作中,我們經常會遇見對時間、日期的處理。現對我使用的處理方式做一個記錄。
1、對calender與GregorianCalendar的應用
2、時間是用距離一個固定時間點的毫秒數(可正可負)表示的,這個點就是紀元(epoch)
3、 Date類的紀元是UTC時間1997年1月1日00:00:00.UTC是Coordinated Universal Time的縮寫
4、 Date類表示時間點,GregorianCalendar表示日曆
5、GregorianCalendar遵循了世界上大多數地區採用的Gregorian陽曆表示法
6、 在GregorianCalendar中月份從0開始計數,因此11月表示12月,一般使用常量來表示
下面是測試用到的兩個事例:
package ObjectAndClass;
import java.util.*;
public class CalendarTest {
public static void main(String[] args) {
// construct d as current date
GregorianCalendar d = new GregorianCalendar();
int today = d.get(Calendar.DAY_OF_MONTH);
int month = d.get(Calendar.MONTH);
int hour = d.get(Calendar.HOUR_OF_DAY);
//set d to start date of month
d.set(Calendar.DAY_OF_MONTH, 1);
int weekday = d.get(Calendar.DAY_OF_WEEK);
//print heading
System.out.println("Sun Mon Tue Wed Thu Fri Sat");
//indent first line of calender
for(int i=Calendar.SUNDAY;i<weekday;i++)
System.out.print(" ");
do
{
//print day
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d", day);
//mark current day with *
if(day == today)
System.out.print("*");
else
System.out.print(" ");
//start a new line after every Saturday
if(weekday == Calendar.SATURDAY)
System.out.println();
//advance d to the next day
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}
while (d.get(Calendar.MONTH) == month);
//the loop exits when d is day 1 of the next month
//print final end of line if necessary
if(weekday != Calendar.SUNDAY)
System.out.println();
}
}
來源於核心技術基礎卷
package ObjectAndClass;
import java.util.*;
import java.text.*;
public class DateTest {
/**
* @param args
* 對date類型進行測試
*/
public static void main(String[] args) {
Date now = new Date();
//date類型的tostring 重載了
System.out.println(now.toString());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String test = sdf.format(now).toString();
System.out.println(test);
String myString = DateFormat.getDateInstance().format(now);
System.out.println(test);
}
}
對GregorianCalendar、Date的用法請查閱jdk。
1、對calender與GregorianCalendar的應用
2、時間是用距離一個固定時間點的毫秒數(可正可負)表示的,這個點就是紀元(epoch)
3、 Date類的紀元是UTC時間1997年1月1日00:00:00.UTC是Coordinated Universal Time的縮寫
4、 Date類表示時間點,GregorianCalendar表示日曆
5、GregorianCalendar遵循了世界上大多數地區採用的Gregorian陽曆表示法
6、 在GregorianCalendar中月份從0開始計數,因此11月表示12月,一般使用常量來表示
下面是測試用到的兩個事例:
package ObjectAndClass;
import java.util.*;
public class CalendarTest {
public static void main(String[] args) {
// construct d as current date
GregorianCalendar d = new GregorianCalendar();
int today = d.get(Calendar.DAY_OF_MONTH);
int month = d.get(Calendar.MONTH);
int hour = d.get(Calendar.HOUR_OF_DAY);
//set d to start date of month
d.set(Calendar.DAY_OF_MONTH, 1);
int weekday = d.get(Calendar.DAY_OF_WEEK);
//print heading
System.out.println("Sun Mon Tue Wed Thu Fri Sat");
//indent first line of calender
for(int i=Calendar.SUNDAY;i<weekday;i++)
System.out.print(" ");
do
{
//print day
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d", day);
//mark current day with *
if(day == today)
System.out.print("*");
else
System.out.print(" ");
//start a new line after every Saturday
if(weekday == Calendar.SATURDAY)
System.out.println();
//advance d to the next day
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}
while (d.get(Calendar.MONTH) == month);
//the loop exits when d is day 1 of the next month
//print final end of line if necessary
if(weekday != Calendar.SUNDAY)
System.out.println();
}
}
來源於核心技術基礎卷
package ObjectAndClass;
import java.util.*;
import java.text.*;
public class DateTest {
/**
* @param args
* 對date類型進行測試
*/
public static void main(String[] args) {
Date now = new Date();
//date類型的tostring 重載了
System.out.println(now.toString());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String test = sdf.format(now).toString();
System.out.println(test);
String myString = DateFormat.getDateInstance().format(now);
System.out.println(test);
}
}
對GregorianCalendar、Date的用法請查閱jdk。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.