date/calender

java.util.Calender

抽象类,精确到毫秒,是与格林威治标准时间(1970 1 1 00.00.00)的偏移量


Calender  righttime = Calender.getInstance();

Calender提供类方法,返回一个通用的Calender类型,其日历字段为系统当前时间。


void clear()

eg:  righttime.clear()  ;//将此 Calendar 的所日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。


Java 本身提供了对 "Gregorian Calendar" 规则的实现。我们从 Calendar.getInstance() 中所获得的实例就是一个 "GreogrianCalendar" 对象(与您通过 new GregorianCalendar() 获得的结果一致)。

import java.io.*;
import java.util.*;

public class WhatIsCalendar
{
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
if (calendar instanceof GregorianCalendar)
System.out.println("It is an instance of GregorianCalendar");
}
}



Calendar 与 Date 的转换非常简单

import java.util.Calendar;
import java.util.Date;

public class Cal {
	public static void main(String args[]){
		Calendar calendar = Calendar.getInstance();
		// 从一个 Calendar 对象中获取 Date 对象
		Date date = calendar.getTime();
		// 将 Date 对象反应到一个 Calendar 对象中,
		// Calendar/GregorianCalendar 没有构造函数可以接受 Date 对象
		// 所以我们必需先获得一个实例,然后设置 Date 对象
		calendar.setTime(date);
		System.out.println(date);//当前时间,日历格式		
	}
}


Calendar对象使用注意点:

月份是从0开始的  --想设置8月 ,传入参数应该是7


一些基础用法:

1)计算某一天是一年中的第几星期

Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
int weekno=cal.get(Calendar.WEEK_OF_YEAR);

(2)计算一年中的第几星期是几号

SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.WEEK_OF_YEAR, 1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(df.format(cal.getTime()));
输出:2006-01-02


(3)计算两个任意时间中间的间隔天数

(4) String 和 Date ,Long 之间相互转换 (最常用)

字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)
通常我们取时间跨度的时候,会substring出具体时间--long-比较

java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M/dd/yyyy hh:mm:ss a",java.util.Locale.US);
java.util.Date d = sdf.parse("5/13/2003 10:31:37 AM");
long dvalue=d.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mDateTime1=formatter.format(d);
(5)java 和 具体的数据库结合

在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,若对应的是MSsqlserver 数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型
你可以使用dateFormat定义时间日期的格式,转一个字符串即可


关于Date:

public static void main(String args[]){
		// Get the system date/time
		Date date = new Date();
		System.out.println(date.getTime());
		}

返回一个长整形的数  -- Java 虚拟机(JVM)主机环境的系统时间.

我们使用了Date 构造
函数创建一个日期对象, 这个构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期.

如果用

System.out.println(new Date());

则输出形式为:Tue Nov 08 14:28:07 CST 2005

如何让日期显示的更好看呢 ?java.text.DateFormat :

import java.text.SimpleDateFormat;
import java.util.Date;

public class Cal {

	public static void main(String args[]){
		/**EEEE是星期, MMMM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式化的.
		 * 传递"EE-MM-dd-yy"会显示Sat-09-29-01. 请察看Sun 公司的Web 站点获取日期格式
		 *化选项的完整的指示
		 */
		SimpleDateFormat bartDateFormat =
			new SimpleDateFormat("EEEE-MM-dd-yyyy");
			Date date = new Date();
			System.out.println(bartDateFormat.format(date));
	}
}

SimpleDateFormat  的常见时间格式写法:

yy:MM:dd HH:mm:ss   注意大小写,时间是24小时制,24小时制转换成12小时制只需将HH改成hh,不需要另外的函数。


使用标准的日期格式化过程

import java.text.DateFormat;
import java.util.Date;

public class DateExample4 {

public static void main(String[] args) {
Date date = new Date();

DateFormat shortDateFormat =
DateFormat.getDateTimeInstance(
DateFormat.SHORT,
DateFormat.SHORT);

DateFormat mediumDateFormat =
DateFormat.getDateTimeInstance(
DateFormat.MEDIUM,
DateFormat.MEDIUM);

DateFormat longDateFormat =
DateFormat.getDateTimeInstance(
DateFormat.LONG,
DateFormat.LONG);

DateFormat fullDateFormat =
DateFormat.getDateTimeInstance(
DateFormat.FULL,
DateFormat.FULL);

System.out.println(shortDateFormat.format(date));
System.out.println(mediumDateFormat.format(date));
System.out.println(longDateFormat.format(date));
System.out.println(fullDateFormat.format(date));
}
}

对 getDateTimeInstance的每次调用中都传递了两个值. 第一个参数是日期风格, 而第二个参数是时间风格. 它们都是基本数据类型int(整型). 考虑到可读性, 我们使用了DateFormat 类提供的常量: SHORT, MEDIUM, LONG, 和 FULL. 要知道获取时间和日期格式化过程的更多的方法和选项, 请看Sun 公司Web站点上的解释.


 String 与日期的转化

DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");        
DateFormat format 2= new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");        
Date date = null;   
String str = null;                 
           
// String转Date   
str = "2007-1-18";         
try {   
           date = format1.parse(str);  
           data = format2.parse(str);
} catch (ParseException e) {   
           e.printStackTrace();   
}   
        
//Date转String
date=new Date();
str=format1.format(date);
str=format2.format(date); 


你可能感兴趣的:(java)