「java获得日历」java获取日历
今天给各位分享java获得日历的知识,其中也会对java获取日历进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、关于JAVA中calendar.get(Calendar.Year)的问题
- 2、java 怎么获取一个时间的年月日
- 3、如何用java做日历
- 4、如何用java取得年,月,日,时,分,秒?
- 5、java 一年的第一周从2月1号开始,获取今年的第三周的星期一,以及去年第三周的星期一 对应的日期 ?
- 6、关于java中输出日历
关于JAVA中calendar.get(Calendar.Year)的问题
一:字段和方法的信息
YEAR 字段:
public static final int YEAR ;
指示年的 get 和 set 的字段数字。这是一个特定于日历的值;
get 方法:
public int get(int field) ;
返回给定日历字段的值。在 lenient 模式下,所有日历字段都被标准化。在 non-lenient 模式下,所有日历字段都是经过验证的,如果任何日历字段有超出范围的值,则此方法抛出一个异常。标准化和验证都是通过 complete() 方法处理的,这个过程与日历系统有关。
参数:field - 给定的日历字段。
返回:给定日历字段的值。
抛出:ArrayIndexOutOfBoundsException - 如果指定字段超出范围 (field 0 || field = FIELD_COUNT)。
详细资料可以参考JDK API的java.util.Calendar
二:Calendar 类详解
Calendar 类是一个抽象类,它为特定时间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
1、使用Calendar类别之前,要先知道Calendar的一些方法取回的数字是对应于Calendar本身的常数,也就是说并不是取回1 这个数字,就表示今天是星期一。
a、想要取得时间,首先使用Calendar的getInstance()取得一个Calendar的实例,例如:
Calendar rightNow = Calendar.getInstance();
b、如果现在您想知道是几年,则可以使用get()方法并指定常数,例如:
System.out.println(rightNow.get(Calendar.YEAR));
c、如果是2005年,则上例会显示2005的数字,依照这个例子,假设撰写本文的时间是5月份,而现在想使用程式取得月份,则下例可能会有些困惑:
System.out.println(rightNow.get(Calendar.MONTH));
d、程式会显示4这个数字,而不是预期的5,因为传回的4并不是代表月份,而是对应于Calendar.MAY常数的值, Calendar在月份上的常数值从Calendar.JANUARY开始是0,到Calendar.DECEMBER的11,所以如果想要显示传回值的真正意涵,可以如下撰写:
String[] months = {"一月", "二月", "三月", "四月","五月", "六月", "七月", "八月","九月", "十月", "十一月", "十二月"};
Calendar rightNow = Calendar.getInstance();
System.out.println(months[rightNow.get(Calendar.MONTH)]);
2、初始值
代码如下,值得指出的是由于我们的时区设置是GMT+8,所以打印格林威治时间得到的是1970-01-01 08:00:00.
Calendar cal = Calendar.getInstance();//得到当前时间
cal.setTimeInMillis(0);//转换成格林威治时间
3、获取值
cal.get(Calendar.YEAR);//年
cal.get(Calendar.MONTH) + 1;//月(必须要+1)
cal.get(Calendar.DATE);//日
cal.get(Calendar.HOUR_OF_DAY);//时
cal.get(Calendar.MINUTE);//分
cal.get(Calendar.SECOND);//秒
cal.get(Calendar.DAY_OF_WEEK);//星期(Locale.ENGLISH情况下,周日是1,剩下自己推算)
如果拿时间不是为了计算而是展示出来,肯定用SimpleDateFormart了,模式为yyyy-MM-dd HH:mm:ss
4、设置值
cal.set(2013, 5, 4, 13, 44, 51);//年月日时分秒(月份0代表1月)
cal.set(Calendar.YEAR, 2014);//年
cal.set(Calendar.MONTH, 7);//月(月份0代表1月)
cal.set(Calendar.DATE, 11);//日
cal.set(Calendar.HOUR_OF_DAY, 15);//时
cal.set(Calendar.MINUTE, 33);//分
cal.set(Calendar.SECOND, 32);//秒
5、运算值
cal.add(Calendar.YEAR, 1);//年
cal.add(Calendar.MONTH, 1);//月
cal.add(Calendar.DATE, 1);//日
cal.add(Calendar.HOUR_OF_DAY, -1);//时
cal.add(Calendar.MINUTE, 1);//分
cal.add(Calendar.SECOND, 1);//秒
cal.add(Calendar.DATE, 7);//周
java 怎么获取一个时间的年月日
java获取一个时间的年月日代码及相关解释说明参考下面代码
package zhidao;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
Calendar cal=Calendar.getInstance();//使用日历类
int year=cal.get(Calendar.YEAR);//获取年份
int month=cal.get(Calendar.MONTH)+1;//获取月份,因为从0开始的,所以要加1
int day=cal.get(Calendar.DAY_OF_MONTH);//获取天
System.out.println("结果:"+year+"-"+month+"-"+day);
}
}
如何用java做日历
看看下面代码:
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import javax.swing.JOptionPane;
class CalendarBean
{
String day[];
int year=2011,month=0;
public void setYear(int year)
{ this.year=year;
}
public int getYear()
{ return year;
}
public void setMonth(int month)
{ this.month=month;
}
public int getMonth()
{ return month;
}
public String[] getCalendar()
{ String a[]=new String[42];
Calendar 日历=Calendar.getInstance();
日历.set(year,month-1,1);
int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1;
int day=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{ day=31;
}
if(month==4||month==6||month==9||month==11)
{ day=30;
}
if(month==2)
{ if(((year%4==0)(year%100!=0))||(year%400==0))
{ day=29;
}
else
{ day=28;
}
}
for(int i=星期几,n=1;i星期几+day;i++)
{
a[i]=String.valueOf(n) ;
n++;
}
return a;
}
}
class CalendarFrame extends Frame implements ActionListener
{
Label labelDay[]=new Label[42];
Button titleName[]=new Button[7];
String name[]={"日","一","二","三", "四","五","六"};
TextField text1,text2;Button nextMonth,previousMonth,Enter;Label lab1,lab2,lab3;
int year=2012,month=5;
CalendarBean calendar;
Label showMessage=new Label("",Label.CENTER);
public CalendarFrame()
{ Panel pCenter=new Panel();
pCenter.setLayout(new GridLayout(7,7));
for(int i=0;i7;i++)
{ titleName[i]=new Button(name[i]);
pCenter.add(titleName[i]);
}
for(int i=0;i42;i++)
{
labelDay[i]=new Label("",Label.CENTER);
pCenter.add(labelDay[i]);
}
calendar=new CalendarBean();
calendar.setYear(year);
calendar.setMonth(month);
String day[]=calendar.getCalendar();
for(int i=0;i42;i++)
{ labelDay[i].setText(day[i]);
}
lab1=new Label("请输入日期");
lab2=new Label("年份");
lab3=new Label("月份");
Enter=new Button("确定");
text1=new TextField(10);
text2=new TextField(5);
nextMonth=new Button("下月");
previousMonth=new Button("上月");
Enter.addActionListener(this);
nextMonth.addActionListener(this);
previousMonth.addActionListener(this);
Panel pNorth=new Panel(),
pSouth=new Panel();
pNorth.add( lab1);
pNorth.add(lab2);
pNorth.add( text1);
pNorth.add(lab3);
pNorth.add(text2);
pNorth.add(Enter);
pNorth.add(previousMonth);
pNorth.add(nextMonth);
pSouth.add(showMessage);
showMessage.setText("日历:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" );
ScrollPane scrollPane=new ScrollPane();
scrollPane.add(pCenter);
add(scrollPane,BorderLayout.CENTER);
add(pNorth ,BorderLayout.NORTH);
add(pSouth ,BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==nextMonth)
{ month=month+1;
if(month12)
month=1;
calendar.setMonth(month);
String day[]=calendar.getCalendar();
for(int i=0;i42;i++)
{ labelDay[i].setText(day[i]);
}
}
else if(e.getSource()==previousMonth)
{ month=month-1;
if(month1)
month=12;
calendar.setMonth(month);
String day[]=calendar.getCalendar();
for(int i=0;i42;i++)
{ labelDay[i].setText(day[i]);
}
}else {
String yea=text1.getText();
String mon=text2.getText();
try{
year=Integer.parseInt(yea);
month=Integer.parseInt(mon);
if(month12||month1||year1){
JOptionPane.showMessageDialog(null, "请输入正确月份或月份");
return;
}
else{
calendar.setYear(year);
calendar.setMonth(month);
}
String day[]=calendar.getCalendar();
for(int i=0;i42;i++)
{
labelDay[i].setText(day[i]);
}
}catch(NumberFormatException ee){
JOptionPane.showMessageDialog(null, "请输入正确的年份及月份");
}
}
showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );
}
}
public class CalendarMainClass
{ public static void main(String args[])
{ CalendarFrame frame=new CalendarFrame();
frame.setTitle("日历");
frame.setBounds(300,200,500,300);
frame.setVisible(true);
frame.validate();
frame.addWindowListener(new java.awt.event.WindowAdapter()
{ public void windowClosing(java.awt.event.WindowEvent e)
{ System.exit(0);
}
}
);
}
}
有问题就追问。满意请采纳。
如何用java取得年,月,日,时,分,秒?
这个问题可以用两种方式得到:
方法一:在java中可以使用Date类直接获得,但是这个方法过时了,不推荐使用。
方法二:使用 java.util.Calendar 类。
代码例子:
//方法1:虽然还可以用,但是已经不建议使用,已经过时。
Date date = new Date();
int old_y = date.getYear()+1900;//得到年份。因为得到的是1900年后至今过了多少年,所以要加1900
int old_m = date.getMonth()+1;//因为得到的结果是0~11,故而加一。
int old_d = date.getDate();//得到月份中今天的号数
System.out.println("现在是:"+old_y+"-"+old_m+"-"+old_d+"(使用过时方法)");//
//方法2:推荐使用
Calendar calendar = Calendar.getInstance();
int now_y = calendar.get(Calendar.YEAR);//得到年份
int now_m = calendar.get(Calendar.MONTH)+1;//得到月份
int now_d = calendar.get(Calendar.DATE);//得到月份中今天的号数
int now_h = calendar.get(Calendar.HOUR_OF_DAY);//得到一天中现在的时间,24小时制
int now_mm = calendar.get(Calendar.MINUTE);//得到分钟数
int now_s = calendar.get(Calendar.SECOND);//得到秒数
System.out.println("现在是:"+now_y+"-"+now_m+"-"+now_d+" "+now_h+":"+now_mm+":"+now_s+"(使用推荐方法)");
结果:
现在是:2015-11-9(使用过时方法)
现在是:2015-11-9 18:7:42(使用推荐方法)
java 一年的第一周从2月1号开始,获取今年的第三周的星期一,以及去年第三周的星期一 对应的日期 ?
public getWeekCount(Date date){ // 获取日历类实例 java.util.Calendar calendar = java.util.Calendar.getInstance(); // 设置时间 calendar.setTime(date); // 设置周一为每周第一天 calendar.setFirstDayOfWeek(java.util.Calendar.MONDAY); // 返回当年最大周数 return calendar.getActualMaximum(java.util.Calendar.WEEK_OF_YEAR);}
关于java中输出日历
第一句将用户输入的数字设为日历对象的“年”成员变量,第二句和第三句同样,一个是月份,一个是按照每月第一天开始的日期,第四句用于取得一个默认的日历对象。
关于java获得日历和java获取日历的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。