A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

【南京校区】开发之日期时间
    在我们实际工作中,在进行电商,订单,页面展示等等情况都需要给用户一个指定的日和格式或者对时间进行计算。
    但是我们知道在Java中时间实际是一个对象,能按照固定的格式进行展示,但是无法进行,那么本文将从展示和计算的角度进行解释。

(一)SimpleDateFormat 简单格式化时间类        此类用于大多数开发,即只要是把日期按照一定的格式给展示出来的情况。
"将日期类对象转成时间字符串"   
[AppleScript] 纯文本查看 复制代码
Date d = new Date();//获取当前时间对象

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//创建日期格式化类对象,"yyyy/MM/dd HH:mm:ss"是我们希望的日期出现格式

System.out.println(sdf.format(d));



"将时间字符串转换成日期对象"
[AppleScript] 纯文本查看 复制代码
String str = "2000年08月08日 08:08:08";

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//"yyyy/MM/dd HH:mm:ss"是我们传入的字符串日期格式

Date d = sdf.parse(str);						//将时间字符串转换成日期对象

System.out.println(d);




(二)Calendar 类: 日历类如果需要获取日期中的每一个字段,需要用到此类。

       
[AppleScript] 纯文本查看 复制代码
public static Calendar getInstance()	//创建对象

	public int get(int field)				//通过字段获取值,字段在API中Calendar类里面 字段以Calendar.XXX的形式传入





	public void add(int field,int amount)	//修改方法,可以为负,对指定的字段进行向前减或向后加

	public final void set(int year,int month,int date)	//设置时间

			重载 void set(int field, int value) ://把指定的字段修改成指定的值


代码示例:
        "获得每一个字段来拼接成我们想要的日期格式"
                                        //但是如果只是想要获取我们想要的日期格式,在实际开发中是用SimpleDateFormat。除非想装逼。
是最后一天
[AppleScript] 纯文本查看 复制代码

		Calendar c = Calendar.getInstance();			//父类引用指向子类对象

		//System.out.println(c);					会把所有的属性都打印出来,对我们没有用,我们只需要对应的属性里面的值就可以。

		System.out.println(c.get(Calendar.YEAR));		//通过字段获取年

		System.out.println(c.get(Calendar.MONTH));		//通过字段获取月,但是月是从0开始编号的

		System.out.println(c.get(Calendar.DAY_OF_MONTH));//月中的第几天

System.out.println(c.get(Calendar.DAY_OF_WEEK));//周日是第一天,周六
               
---------------------------------------------------------------------------------------------------------------------


        "对日期进行修改"
[AppleScript] 纯文本查看 复制代码
		Calendar c = Calendar.getInstance();			//父类引用指向子类对象

		//c.add(Calendar.MONTH, -1);					//对指定的字段进行向前减或向后加

		//c.set(Calendar.YEAR, 2000);					//修改指定字段

		c.set(2000, 7, 8);

		

		System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1)) 

				+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));

			

-----------------------------------------------------------------------------------------------------------------------
       
        public static String getWeek(int week) { //查表法
                String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
                        //因为日历类中的DAY_OF_WEEK,返回值 只有 1-7
                return arr[week];
        }
       

        /*
         * 如果是个数数字前面补0
         * 1,返回值类型String类型
         * 2,参数列表,int num
         */
        public static String getNum(int num) {
                return num > 9 ? "" + num : "0" + num;
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马