系统时间。calendar获取的时间的用法是:calendar等于CalendargetInstance()。根据查询相关资料得知,其获取的时间是系统时间,不是容器时间。系统时间执行date命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdfparse("2011-10-20");
Calendar c = CalendargetInstance();
csetTime(d);int year = cget(CalendarYEAR);
扩展资料:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
参考资料:
给你重写一个:
#include <stdioh>
#include <timeh>
#include <stdlibh>
#include <conioh>
void print_calendar(int y, int m); / 显示y年m月日历 /
int Week(int y,int m,int d); / 求星期几 /
inline int isleap(int y); / 判断y年是否闰年 /
void main(){
int year,month;
struct tm t;
char ch;
int quit=0;
_getsystime(&t); / 获得系统当前时间 /
year = ttm_year + 1900; / 当前年份 /
month = ttm_mon + 1; / 当前月份 /
while(!quit){
system("cls"); / 调用DOS清屏命令 /
print_calendar(year,month); / 显示year年month月日历 /
printf("\n");
printf("\tw-上一年 s-下一年 a-上一月 d-下一月 q-退出\n");
ch=getch(); / 输入字符(不显示) /
ch=(ch>='a' && ch<='z') ch-32 : ch; / 转换为大写 /
switch(ch){
case 'W': year--; break; / 年减1 /
case 'S': year++; break; / 年加1 /
case 'A': / 月减1 /
month--;
if(month==0)
month=12, year--;
break;
case 'D': / 月加1 /
month++;
if(month==13)
month=1, year++;
break;
case 'Q':
quit=1;
break;
}
}
}
/ 显示y年m月日历 /
void print_calendar(int y, int m){
int mds[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int c,d;
int w=Week(y,m,1);
int days=mds[m-1];
days+=((m<=2) 0 : isleap(y) 1 : 0); / m>2时,闰年加1天 /
printf("\n");
printf("\t %4d 年 %2d 月\n",y,m);
printf("\n");
printf("\t 日 一 二 三 四 五 六\n");
printf("\t ");
for(d=0,c=0; d<w; d++,c++)
printf(" ");
for(d=1; d<=days; d++){
printf(" %2d ",d);
c++;
if(c%7==0)
printf("\n\t ");
}
printf("\n");
}
/ 参数:y=年份,m=月份,d=号数;返回值:0|1~6=星期日|一~六 /
int Week(int y,int m,int d){
int ds[12]={0,31,59,90,120,151,181,212,243,273,304,334}; / ds[i]=平年i+1月1日前的天数,i=0,1, /
int days; / 总天数 /
days=365(y-1)+(y-1)/4-(y-1)/100+(y-1)/400; / 到y-1年底的总天数 /
days+=ds[m-1]; / 到y-1年m-1月底的总天数 /
days+=((m<=2) 0 : isleap(y) 1 : 0); / m>2时,闰年加1天 /
days+=d; / 到y-1年m-1月d日的总天数 /
return days%7; / 返回星期值 /
}
/ 判断y年是否闰年,是则返回非0,否则返回0 /
int isleap(int y){
return (y%4==0 && y%100!=0 || y%400==0);
}
取得时间类
1、Date ,Systemoutprintln(new date());
2、calendar 此类是抽象类,要想实例化,需要实例化子类GregorianCalendar
看看jdk的API中给了相应的方法:注意月份需要加1;
有时候希望对格式进行转换。
SimpleDateFormat类 此类在javatext包下
1、准备原格式,2、准备新格式 3、转化
String str = "2011-09-11 16:35:06";
SimpleDateFormat sd = new SimpleDateFormate("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sd2 = new SimpleDateFormate("yyyy
年MM月dd日 HH时mm分ss秒")
//然后进行转化
Date d = sdparse(str);
将时间数插入sd2上
String newStr = sd2format(d);
Systemoutprintln(newStr);
//CalendarTestjava
//Calendar对象能很好解决你的问题
import javautilCalendar;
public class CalendarTest {
public static void main(String[] args) {
Calendar c = CalendargetInstance();
int y=cget(CalendarYEAR);//年
int M = cget(CalendarMONTH)+1;//月,注意这里要加1,计算机第一个月从0开始
int d = cget(CalendarDATE);//日
Systemoutprintln("年:"+y);
Systemoutprintln("月:"+M);
Systemoutprintln("日:"+d);
String dateStr = "";
dateStr+=y+"-"+(M<10"0":"")+M+"-"+(d<10"0":"")+d;
Systemoutprintln(dateStr);
}
}
获取的是阳历,补充一点,一般都是用阳历的
阳历也叫公历,来源于西方。比如算星座时、就是按照阳历(公历)计算的。
阴历也叫农历,来源于我们中国。
比如我们俗称的八月十五中秋节、清明节、七夕、春节、就是按照农历来计算的。而元旦、和西方的情人节(214)和圣诞节、国庆节、建军节、党的生日、都是按照公历来计算的。
他们的主要区别就在于阳历是国际通用的,而农历是我们中国特有的。
编程语言是国外的,怎么可能用来获取我们中国特有的时间呢
很多朋友都想知道java怎么获得当前年月日?下面就一起来了解一下吧~
两种方法,通过Date类或者通过Calendar类,Date类比较简单,但是要得到细致的字段的话Calendar类比较方便。
import javatextDateFormat; import javatextSimpleDateFormat; import javautilCalendar; import javautilDate; import javautilLocale; import orgjunitTest; public class GetTimeNow { / 通过Calendar类获取 / @Test public void getTimeNowThroughCalendar(){ //使用默认时区和语言环境获得一个日历。 Calendar rightNow = CalendargetInstance(); /用Calendar的get(int field)方法返回给定日历字段的值。 HOUR 用于 12 小时制时钟 (0 - 11),HOUR_OF_DAY 用于 24 小时制时钟。/ Integer year = rightNowget(CalendarYEAR); Integer month = rightNowget(CalendarMONTH)+1; //第一个月从0开始,所以得到月份+1 Integer day = rightNowget(rightNowDAY_OF_MONTH); Integer hour12 = rightNowget(rightNowHOUR); Integer hour24 = rightNowget(rightNowHOUR_OF_DAY); Integer minute = rightNowget(rightNowMINUTE); Integer second = rightNowget(rightNowSECOND); Integer millisecond = rightNowget(rightNowMILLISECOND); String TimeNow12 = year+"-"+month+"-"+day+" "+hour12+":"+minute+":"+second+":"+millisecond; String TimeNow24 = year+"-"+month+"-"+day+" "+hour24+":"+minute+":"+second+":"+millisecond; Systemoutprintln("日历:"+rightNow+"\n12小时制时钟:"+TimeNow12+"\n24小时制时钟:"+TimeNow24); } / 通过Date类获取 / @Test public void getTimeNowThroughDate(){ Date date=new Date(); DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS"); Systemoutprintln(formatformat(date)); //DateFormat类的静态工厂方法 Systemoutprintln(formatgetInstance()format(date)); Systemoutprintln(formatgetDateInstance()format(date)); Systemoutprintln(formatgetTimeInstance()format(date)); Systemoutprintln(formatgetDateTimeInstance()format(date)); //DateFormat带参数的静态工厂方法 //第一个参数是静态变量style有4中取值0、1、2、3分别对应SHORT、MIDIUM、LONG、FULL //第二个参数根据环境敏感的Locale类的静态变量自定义输出 Systemoutprintln(formatgetDateInstance(0, LocaleCHINA)format(date)); Systemoutprintln(formatgetTimeInstance(0,LocaleCHINA)format(date)); Systemoutprintln(formatgetDateTimeInstance(2,2)format(date)); } / 两者结合。。。 / @Test public void getTimeNowTogether(){ String TimeNow = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")format(CalendargetInstance()getTime()); Systemoutprintln(TimeNow); } }
日历: javautilGregorianCalendar[time=1454251772565,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sunutilcalendarZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=0,WEEK_OF_YEAR=6,WEEK_OF_MONTH=6,DAY_OF_MONTH=31,DAY_OF_YEAR=31,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=10,HOUR_OF_DAY=22,MINUTE=49,SECOND=32,MILLISECOND=565,ZONE_OFFSET=28800000,DST_OFFSET=0] 12小时制时钟:2016-1-31 10:49:32:565 24小时制时钟:2016-1-31 22:49:32:565 2016-01-31 22:49:50:36 16-1-31 下午10:49 2016-1-31 22:49:50 2016-1-31 22:49:50 2016年1月31日 星期日 下午10时49分50秒 CST 2016-1-31 22:49:50 2016-01-31 22:50:09:270
java获取一个时间的年月日代码及相关解释说明参考下面代码
package zhidao;
import javautilCalendar;
public class Test {
public static void main(String[] args) {
Calendar cal=CalendargetInstance();//使用日历类
int year=calget(CalendarYEAR);//获取年份
int month=calget(CalendarMONTH)+1;//获取月份,因为从0开始的,所以要加1
int day=calget(CalendarDAY_OF_MONTH);//获取天
Systemoutprintln("结果:"+year+"-"+month+"-"+day);
}
}
以上就是关于calendar获取的时间是容器时间还是系统时间全部的内容,包括:calendar获取的时间是容器时间还是系统时间、java 怎么从date取得年份、求帮忙用C语言改这个程序可以使其输入W S则显示去年与明年这个月的日历,输入A D 则显示上个月与下个月的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)