本系列博客汇总在这里:Java系列_汇总
目录
- 一、Date 类
- 1、date 类的构造器
- 2、常用方法
- 二、日期的格式化
- 三、日历类 Calendar
一、Date 类
1、date 类的构造器
2、常用方法
- 示例
package cn.tx;
import java.util.Date;
public class Demo
{
public static void main(String[] args)
{
/**
* 第一种构造器 Date() 描述:分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最近的毫秒。
*/
// 创建日期的对象(需要引入util下的包)
Date date = new Date();
System.out.println("当前系统时间:" + date);
/**
* getTime() 描述:返回自1970年1月1日以来,由此 Date对象表示的00:00:00 GMT的毫秒 数 。
*/
// 一天的毫秒数
long ms = 24 * 60 * 60 * 1000;
// 获得当前时间的毫秒数
// long cms = System.currentTimeMillis();//方式一
long cms1 = date.getTime();// 方式二
// 获得昨天的当前时间
// 第二种构造器
Date date2 = new Date(cms1 - ms);
System.out.println("昨天的当前系统时间:" + date2);
}
}
二、日期的格式化
- DateFormat 下的子类 SimpleDateFormat 的构造器
- DateFormat下的方法(部分)
- SimpleDateFormat 类里面的日期和时间模式
- 示例
-
package cn.tx;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo
{
public static void main(String[] args)
{
// 创建日期的对象
Date date = new Date();
/**
* SimpleDateFormat() 描述:构造一个 SimpleDateFormat使用默认模式和日期格式符号为默认的 FORMAT区域设置。
*/
// 创建日期格式化的对象
SimpleDateFormat sdf = new SimpleDateFormat();
String str = sdf.format(date);
System.out.println("当前时间:" + str);
/**
* SimpleDateFormat(String pattern) 描述:使用给定模式 SimpleDateFormat并使用默认的
* FORMAT语言环境的默认日期格式符号。
*/
// 自定义的格式化的对象
// SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 常用格式
// 把日期转换成字符串
String str1 = sdf1.format(date);
System.out.println("按指定格式输出的当前时间:" + str1);
/**
* parse(String source) 描述:从给定字符串的开始解析文本以生成日期。
*/
// 把字符串转换成日期
String str2 = "2017-05-23 23:14:45";
try
{
// 获得指定字符串日期对象,注意:字符串的格式一定要和SimpleDateFormat中的格式要匹配
Date date1 = sdf1.parse(str2);
System.out.println("用户指定日期:" + date1);
long ms = date1.getTime();
System.out.println("用户指定日期的毫秒数:" + ms);
} catch (ParseException e)
{
// TODO 自动生成的 catch 块
System.out.println("请按格式输入!");
}
}
}
三、日历类 Calendar
- API
- 获得日历类的实例。
- 获得以及设置日历中的字段。
- 更多详见API。
- 示例
-
package cn.tx;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Demo
{
public static void main(String[] args)
{
/**
* getInstance() 描述:使用默认时区和区域设置获取日历。
*/
Calendar ca = Calendar.getInstance();
/**
* java.util.GregorianCalendar[time=1534827922955,
* areFieldsSet=true,areAllFieldsSet=true,lenient=true,
* zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai", offset=28800000,
* dstSavings=0, useDaylight=false, transitions=19, lastRule=null],
* firstDayOfWeek=1, minimalDaysInFirstWeek=1, ERA=1, YEAR=2018, MONTH=7,
* WEEK_OF_YEAR=34, WEEK_OF_MONTH=4, DAY_OF_MONTH=21, DAY_OF_YEAR=233,
* DAY_OF_WEEK=3, DAY_OF_WEEK_IN_MONTH=3, AM_PM=1, HOUR=1, HOUR_OF_DAY=13,
* MINUTE=5,SECOND=22, MILLISECOND=955, ZONE_OFFSET=28800000, DST_OFFSET=0]
*/
System.out.println("直接打印时间:" + ca);
/**
* get(int field) 描述:返回给定日历字段的值。
*/
// 获得年
int year = ca.get(Calendar.YEAR);
// 获得月
// 注意:在月的处理上需要做加一或者减一操作
int month = ca.get(Calendar.MONTH) + 1;
// 获得日
int day = ca.get(Calendar.DAY_OF_MONTH);
// 获得小时
int hour = ca.get(Calendar.HOUR);
// 获得分钟
int minute = ca.get(Calendar.MINUTE);
// 获得秒
int second = ca.get(Calendar.SECOND);
// 获得毫秒
int millisecond = ca.get(Calendar.MILLISECOND);
System.out.println("当前时间为:" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
+ millisecond + "毫秒");
/**
* set(int field, int value) 描述:将给定的日历字段设置为给定的值。
*/
// 设置日历
ca.set(Calendar.YEAR, 1111);
// 注意:在月的处理上需要做加一或者减一操作
ca.set(Calendar.MONTH, 1 - 1);
ca.set(Calendar.DAY_OF_MONTH, 11);
ca.set(Calendar.HOUR, 11);
ca.set(Calendar.MINUTE, 11);
ca.set(Calendar.SECOND, 11);
ca.set(Calendar.MILLISECOND, 11);
System.out.println("设置后直接打印的时间:" + ca);
// 获得日历相关的毫秒数
long tm = ca.getTimeInMillis();
Date date = new Date(tm);
SimpleDateFormat spf = new SimpleDateFormat("格式化后的时间格式:yyyy-MM-dd");
String str = spf.format(date);
System.out.println(str);
}
}
如有错误,欢迎指正!