import
java.util.Date;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.GregorianCalendar;
/*
G Era 标志符
y 年
M 年中的月份
w 年中的周数
W 月份中的周数
D 年中的天数
d 月份中的天数
F 月份中的星期
E 星期中的天数
a Am/pm 标记
H 一天中的小时数(0-23)
k 一天中的小时数(1-24)
K am/pm 中的小时数(0-11)
h am/pm 中的小时数(1-12)
m 小时中的分钟数
s 分钟中的秒数
S 毫秒数
z 时区
Z 时区
*/
public class SimpleDateFormatTest
{
/**
* 字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)
* parse
*/
public static void parse() throws Exception
{
// 注意MM是月,mm是分钟,HH代表0-23,hh代表1-12 AM/PM
String dateStr = " 10/23/2006 6:35:55 " ;
SimpleDateFormat formatter = new SimpleDateFormat( " MM/dd/yyyy HH:mm:ss " );
Date date = formatter.parse(dateStr);
System.out.println(date);
}
/**
* 日期类型转换成字符串
* format
*/
public static void format() throws Exception
{
SimpleDateFormat formatter1 = new SimpleDateFormat( " MM/dd/yyyy HH:mm:ss " );
Date date1 = formatter1.parse( " 10/23/2006 6:35:55 " );
System.out.println(date1);
GregorianCalendar gc = new GregorianCalendar( 2006 , 8 , 22 , 9 , 44 , 56 );
Date date2 = gc.getTime();
SimpleDateFormat formatter2 = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
String str1 = formatter2.format(date1);
String str2 = formatter2.format(date2);
System.out.println(str1);
System.out.println(str2);
}
/**
* 当前时间
*/
public static void nowDate()
{
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat formatter = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
Date nowDate = gc.getTime();
String nowDateStr = formatter.format(nowDate);
System.out.println( " now date : " + nowDateStr);
}
/**
* 1年前此时
*/
public static void yesteryear()
{
GregorianCalendar gc = new GregorianCalendar();
Date nowDate = gc.getTime();
SimpleDateFormat formatter = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
String nowDateStr = formatter.format(nowDate);
System.out.println( " now date: " + nowDateStr);
// 此时自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
long nowDateMS = nowDate.getTime();
// 去年此时自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
long yesteryearNowDateMS = (nowDateMS / 1000 - 60 * 60 * 24 * 365 ) * 1000 ;
Date yesteryearNowDate = new Date(yesteryearNowDateMS);
String yesteryearNowDateStr = formatter.format(yesteryearNowDate);
System.out.println( " yesteryear date: " + yesteryearNowDateStr);
}
/**
* 明天此时
*/
public static void tomorrow()
{
// 当前日期
GregorianCalendar gc = new GregorianCalendar();
Date nowDate = gc.getTime();
SimpleDateFormat formatter = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
String nowDateStr = formatter.format(nowDate);
System.out.println( " now date: " + nowDateStr);
// 当前自1970.1.1 00:00:00GMT以来的毫秒数
long nowTime = nowDate.getTime();
// 明天此时自1970.1.1 00:00:00GMT以来的毫秒数
long tomorrowTime = (nowTime / 1000 + 60 * 60 * 24 ) * 1000 ;
Date tommorDate = new Date(tomorrowTime);
String tomorrowThisTimeStr = formatter.format(tommorDate);
System.out.println( " tomorrow this date: " + tomorrowThisTimeStr);
}
/**
* 两个时间之间的天数
*
*/
public static void interval() throws Exception
{
String strA = " 2006-9-10 " ;
String strB = " 2006-9-16 " ;
SimpleDateFormat formatter = new SimpleDateFormat( " yyyy-MM-dd " );
Date dateA = formatter.parse(strA);
Date dateB = formatter.parse(strB);
long dateAMS = dateA.getTime();
long dateBMS = dateB.getTime();
// 两日期相差的毫秒数
long intervalMS = dateBMS - dateAMS;
// 两日期相差的天数
long intervalDay = intervalMS / 1000 / 60 / 60 / 24 ;
System.out.println(strA + " 与 " + strB + " 相隔 " + intervalDay + " 天 " );
}
/**
* 某年某月第几周求日期
* 如:2006年9月的第2个星期五是几号
*/
public static void calculatDate() throws Exception
{
SimpleDateFormat formatter2 = new SimpleDateFormat( " yyyy-MM F E " );
Date date2 = formatter2.parse( " 2006-09 2 星期五 " ); // 2006年9月的第2个星期五是几号
SimpleDateFormat formatter3 = new SimpleDateFormat( " yyyy-MM-dd " );
String mydate2 = formatter3.format(date2);
System.out.println(mydate2);
}
/**
* 给定日期求是星期几
*/
public static void calculatWeek() throws Exception
{
SimpleDateFormat formatter1 = new SimpleDateFormat( " yyyy-MM-dd " );
Date date = formatter1.parse( " 2006-9-10 " );
SimpleDateFormat formatter2 = new SimpleDateFormat( " E " );
String weekStr = formatter2.format(date);
System.out.println(weekStr);
}
public static void main(String[] args) throws Exception
{
parse();
format();
nowDate();
yesteryear();
tomorrow();
interval();
calculatDate();
calculatWeek();
}
}
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.GregorianCalendar;
/*
G Era 标志符
y 年
M 年中的月份
w 年中的周数
W 月份中的周数
D 年中的天数
d 月份中的天数
F 月份中的星期
E 星期中的天数
a Am/pm 标记
H 一天中的小时数(0-23)
k 一天中的小时数(1-24)
K am/pm 中的小时数(0-11)
h am/pm 中的小时数(1-12)
m 小时中的分钟数
s 分钟中的秒数
S 毫秒数
z 时区
Z 时区
*/
public class SimpleDateFormatTest
{
/**
* 字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)
* parse
*/
public static void parse() throws Exception
{
// 注意MM是月,mm是分钟,HH代表0-23,hh代表1-12 AM/PM
String dateStr = " 10/23/2006 6:35:55 " ;
SimpleDateFormat formatter = new SimpleDateFormat( " MM/dd/yyyy HH:mm:ss " );
Date date = formatter.parse(dateStr);
System.out.println(date);
}
/**
* 日期类型转换成字符串
* format
*/
public static void format() throws Exception
{
SimpleDateFormat formatter1 = new SimpleDateFormat( " MM/dd/yyyy HH:mm:ss " );
Date date1 = formatter1.parse( " 10/23/2006 6:35:55 " );
System.out.println(date1);
GregorianCalendar gc = new GregorianCalendar( 2006 , 8 , 22 , 9 , 44 , 56 );
Date date2 = gc.getTime();
SimpleDateFormat formatter2 = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
String str1 = formatter2.format(date1);
String str2 = formatter2.format(date2);
System.out.println(str1);
System.out.println(str2);
}
/**
* 当前时间
*/
public static void nowDate()
{
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat formatter = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
Date nowDate = gc.getTime();
String nowDateStr = formatter.format(nowDate);
System.out.println( " now date : " + nowDateStr);
}
/**
* 1年前此时
*/
public static void yesteryear()
{
GregorianCalendar gc = new GregorianCalendar();
Date nowDate = gc.getTime();
SimpleDateFormat formatter = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
String nowDateStr = formatter.format(nowDate);
System.out.println( " now date: " + nowDateStr);
// 此时自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
long nowDateMS = nowDate.getTime();
// 去年此时自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
long yesteryearNowDateMS = (nowDateMS / 1000 - 60 * 60 * 24 * 365 ) * 1000 ;
Date yesteryearNowDate = new Date(yesteryearNowDateMS);
String yesteryearNowDateStr = formatter.format(yesteryearNowDate);
System.out.println( " yesteryear date: " + yesteryearNowDateStr);
}
/**
* 明天此时
*/
public static void tomorrow()
{
// 当前日期
GregorianCalendar gc = new GregorianCalendar();
Date nowDate = gc.getTime();
SimpleDateFormat formatter = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
String nowDateStr = formatter.format(nowDate);
System.out.println( " now date: " + nowDateStr);
// 当前自1970.1.1 00:00:00GMT以来的毫秒数
long nowTime = nowDate.getTime();
// 明天此时自1970.1.1 00:00:00GMT以来的毫秒数
long tomorrowTime = (nowTime / 1000 + 60 * 60 * 24 ) * 1000 ;
Date tommorDate = new Date(tomorrowTime);
String tomorrowThisTimeStr = formatter.format(tommorDate);
System.out.println( " tomorrow this date: " + tomorrowThisTimeStr);
}
/**
* 两个时间之间的天数
*
*/
public static void interval() throws Exception
{
String strA = " 2006-9-10 " ;
String strB = " 2006-9-16 " ;
SimpleDateFormat formatter = new SimpleDateFormat( " yyyy-MM-dd " );
Date dateA = formatter.parse(strA);
Date dateB = formatter.parse(strB);
long dateAMS = dateA.getTime();
long dateBMS = dateB.getTime();
// 两日期相差的毫秒数
long intervalMS = dateBMS - dateAMS;
// 两日期相差的天数
long intervalDay = intervalMS / 1000 / 60 / 60 / 24 ;
System.out.println(strA + " 与 " + strB + " 相隔 " + intervalDay + " 天 " );
}
/**
* 某年某月第几周求日期
* 如:2006年9月的第2个星期五是几号
*/
public static void calculatDate() throws Exception
{
SimpleDateFormat formatter2 = new SimpleDateFormat( " yyyy-MM F E " );
Date date2 = formatter2.parse( " 2006-09 2 星期五 " ); // 2006年9月的第2个星期五是几号
SimpleDateFormat formatter3 = new SimpleDateFormat( " yyyy-MM-dd " );
String mydate2 = formatter3.format(date2);
System.out.println(mydate2);
}
/**
* 给定日期求是星期几
*/
public static void calculatWeek() throws Exception
{
SimpleDateFormat formatter1 = new SimpleDateFormat( " yyyy-MM-dd " );
Date date = formatter1.parse( " 2006-9-10 " );
SimpleDateFormat formatter2 = new SimpleDateFormat( " E " );
String weekStr = formatter2.format(date);
System.out.println(weekStr);
}
public static void main(String[] args) throws Exception
{
parse();
format();
nowDate();
yesteryear();
tomorrow();
interval();
calculatDate();
calculatWeek();
}
}