calendar获取的时间是容器时间还是系统时间

calendar获取的时间是容器时间还是系统时间,第1张

系统时间。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应用程序、分布式系统和嵌入式系统应用程序等。

参考资料:

Date()百度百科

给你重写一个:

#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 则显示上个月与下个月的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9582271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存