
//得到long类型当前时间
long l = SystemcurrentTimeMillis();
//new日期对
Date date = new Date(l);
//转换提日期输出格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-
dd HH:mm:ss");Systemoutprintln(dateFormatformat(date));
扩展资料
package comob;
import javatextParseException;
import javatextSimpleDateFormat;
import javautilCalendar;
import javautilDate;
public class DateTest {
public static void main(String[] args) throws ParseException {
Calendar now = CalendargetInstance();
Systemoutprintln("年: " + nowget(CalendarYEAR));
Systemoutprintln("月: " + (nowget(CalendarMONTH) + 1) + "");
Systemoutprintln("日: " + nowget(CalendarDAY_OF_MONTH));
Systemoutprintln("时: " + nowget(CalendarHOUR_OF_DAY));
Systemoutprintln("分: " + nowget(CalendarMINUTE));
Systemoutprintln("秒: " + nowget(CalendarSECOND));
Systemoutprintln("当前时间毫秒数:" + nowgetTimeInMillis());
Systemoutprintln(nowgetTime());
\t\tDate d = new Date();
Systemoutprintln(d);
\t\tSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
\t\tString dateNowStr = sdfformat(d);
Systemoutprintln("格式化后的日期:" + dateNowStr);
\t\t
\t\tString str = "2012-1-13 17:26:33";
//要跟上面sdf定义的格式一样
\t\tDate today = sdfparse(str);
Systemoutprintln("字符串转成日期:" + today);
\t}
}
参考资料:
以下是两个类,请楼主分别存成两个java文件:
其中
MainFramejava是显示日历程序,Clockjava是日历计算程序。编译后运行MainFrame这个类即可。
1MainFramejava
---
import javaawtBorderLayout;
import javaawtColor;
import javaawtGridLayout;
import javaawtToolkit;
import javaawteventActionEvent;
import javaawteventActionListener;
import javasqlDate;
import javautilCalendar;
import javaxswingJComboBox;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJPanel;
public class MainFrame extends JFrame {
/ //
/
private static final long serialVersionUID = 1L;
JPanel panel = new JPanel(new BorderLayout());
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel(new GridLayout(7, 7));
JPanel panel3 = new JPanel();
JLabel[] label = new JLabel[49];
JLabel y_label = new JLabel("年份");
JLabel m_label = new JLabel("月份");
JComboBox com1 = new JComboBox();
JComboBox com2 = new JComboBox();
int re_year, re_month;
int x_size, y_size;
String year_num;
Calendar now = CalendargetInstance(); // 实例化Calendar
MainFrame() {
super("万年历");
setSize(300, 350);
x_size = (int) (ToolkitgetDefaultToolkit()getScreenSize()getWidth());
y_size = (int) (ToolkitgetDefaultToolkit()getScreenSize()getHeight());
setLocation((x_size - 300) / 2, (y_size - 350) / 2);
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
panel1add(y_label);
panel1add(com1);
panel1add(m_label);
panel1add(com2);
for (int i = 0; i < 49; i++) {
label[i] = new JLabel("", JLabelCENTER);// 将显示的字符设置为居中
panel2add(label[i]);
}
panel3add(new Clock(this));
paneladd(panel1, BorderLayoutNORTH);
paneladd(panel2, BorderLayoutCENTER);
paneladd(panel3, BorderLayoutSOUTH);
panelsetBackground(Colorwhite);
panel1setBackground(Colorwhite);
panel2setBackground(Colorwhite);
panel3setBackground(Colorwhite);
Init();
com1addActionListener(new ClockAction());
com2addActionListener(new ClockAction());
setContentPane(panel);
setVisible(true);
setResizable(false);
}
class ClockAction implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
int c_year, c_month, c_week;
c_year = IntegerparseInt(com1getSelectedItem()toString()); // 得到当前所选年份
c_month = IntegerparseInt(com2getSelectedItem()toString()) - 1; // 得到当前月份,并减1,计算机中的月为0-11
c_week = use(c_year, c_month); // 调用函数use,得到星期几
Resetday(c_week, c_year, c_month); // 调用函数Resetday
}
}
public void Init() {
int year, month_num, first_day_num;
String log[] = { "日", "一", "二", "三", "四", "五", "六" };
for (int i = 0; i < 7; i++) {
label[i]setText(log[i]);
}
for (int i = 0; i < 49; i = i + 7) {
label[i]setForeground(Colorred); // 将星期日的日期设置为红色
}
for (int i = 6; i < 49; i = i + 7) {
label[i]setForeground(Colorgreen);// 将星期六的日期设置为绿色
}
for (int i = 1; i < 10000; i++) {
com1addItem("" + i);
}
for (int i = 1; i < 13; i++) {
com2addItem("" + i);
}
month_num = (int) (nowget(CalendarMONTH)); // 得到当前时间的月份
year = (int) (nowget(CalendarYEAR)); // 得到当前时间的年份
com1setSelectedIndex(year - 1); // 设置下拉列表显示为当前年
com2setSelectedIndex(month_num); // 设置下拉列表显示为当前月
first_day_num = use(year, month_num);
Resetday(first_day_num, year, month_num);
}
public int use(int reyear, int remonth) {
int week_num;
nowset(reyear, remonth, 1); // 设置时间为所要查询的年月的第一天
week_num = (int) (nowget(CalendarDAY_OF_WEEK));// 得到第一天的星期
return week_num;
}
@SuppressWarnings("deprecation")
public void Resetday(int week_log, int year_log, int month_log) {
int month_day_score; // 存储月份的天数
int count;
month_day_score = 0;
count = 1;
Date date = new Date(year_log, month_log + 1, 1); // now
Calendar cal = CalendargetInstance();
calsetTime(date);
caladd(CalendarMONTH, -1); // 前个月
month_day_score = calgetActualMaximum(CalendarDAY_OF_MONTH);// 最后一天
for (int i = 7; i < 49; i++) { // 初始化标签
label[i]setText("");
}
week_log = week_log + 6; // 将星期数加6,使显示正确
month_day_score = month_day_score + week_log;
for (int i = week_log; i < month_day_score; i++, count++) {
label[i]setText(count + "");
}
}
public static void main(String[] args) {
JFramesetDefaultLookAndFeelDecorated(true);
new MainFrame();
}
}
2Clockjava
-----
import javaawtBorderLayout;
import javaawtColor;
import javaawtGridLayout;
import javaawtToolkit;
import javaawteventActionEvent;
import javaawteventActionListener;
import javasqlDate;
import javautilCalendar;
import javaxswingJComboBox;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJPanel;
//显示时间的类:Clock
/ //
Clockjava
Summary 数字时间显示
Created on
@author
remark
/
import javaawtCanvas;
import javaawtColor;
import javaawtFont;
import javaawtGraphics;
import javatextSimpleDateFormat;
import javautilCalendar;
class Clock extends Canvas implements Runnable{
/ //
/
private static final long serialVersionUID = 3660124045489727166L;
MainFrame mf;
Thread t;
String time;
public Clock(MainFrame mf){
thismf=mf;
setSize(280,40);
setBackground(Colorwhite);
t=new Thread(this); //实例化线程
tstart(); //调用线程
}
public void run(){
while(true){
try{
Threadsleep(1000); //休眠1秒钟
}catch(InterruptedException e){
Systemoutprintln("异常");
}
thisrepaint(100);
}
}
public void paint(Graphics g){
Font f=new Font("宋体",FontBOLD,16);
SimpleDateFormat SDF=new SimpleDateFormat("yyyy'年'MM'月'dd'日'HH:mm:ss");//格式化时间显示类型
Calendar now=CalendargetInstance();
time=SDFformat(nowgetTime()); //得到当前日期和时间
gsetFont(f);
gsetColor(Colororange);
gdrawString(time,45,25);
}
}
java 现在用Date类来获取年月日的方法都已经过时不推荐使用了。
比较好的就是用Calendar类。这个类的构造函数好像不能访问,应该用getXXX的类方法得到实例。默认就是系统时间,可以setDate来改变实例对应的时间。
然后calget(CalendarYEAR) 就可以得到年了。
这个问题可以用两种方式得到:
方法一:在java中可以使用Date类直接获得,但是这个方法过时了,不推荐使用。
方法二:使用 javautilCalendar 类。
代码例子:
//方法1:虽然还可以用,但是已经不建议使用,已经过时。Date date = new Date();
int old_y = dategetYear()+1900;//得到年份。因为得到的是1900年后至今过了多少年,所以要加1900
int old_m = dategetMonth()+1;//因为得到的结果是0~11,故而加一。
int old_d = dategetDate();//得到月份中今天的号数
Systemoutprintln("现在是:"+old_y+"-"+old_m+"-"+old_d+"(使用过时方法)");//
//方法2:推荐使用
Calendar calendar = CalendargetInstance();
int now_y = calendarget(CalendarYEAR);//得到年份
int now_m = calendarget(CalendarMONTH)+1;//得到月份
int now_d = calendarget(CalendarDATE);//得到月份中今天的号数
int now_h = calendarget(CalendarHOUR_OF_DAY);//得到一天中现在的时间,24小时制
int now_mm = calendarget(CalendarMINUTE);//得到分钟数
int now_s = calendarget(CalendarSECOND);//得到秒数
Systemoutprintln("现在是:"+now_y+"-"+now_m+"-"+now_d+" "+now_h+":"+now_mm+":"+now_s+"(使用推荐方法)");
结果:
现在是:2015-11-9(使用过时方法)
现在是:2015-11-9 18:7:42(使用推荐方法)
Java中日历类(Calendar类)的用途如下:
Calendar类的静态方法getInstance()可以初始化一个日历对象:Calendar now = CalendargetInstance();
可以使用下面三个方法把日历定到任何一个时间:
set(int year ,int month,int date) ;set(int year ,int month,int date,int hour,int minute) ;
set(int year ,int month,int date,int hour,int minute,int second) ;
如果想获得年份、月份、小时等信息可以使用:
Nowget(CalendarMonth);//这样的方法 0表示一月,1表示二月get(CalendarDAY_OF_MONTH);//获得这个月的第几天
get(CalendarDAY_OF_WEEK);//获得这个星期的第几天
get(CalendarDAY_OF_YEAR);//获得这个年的第几天
getTimeMillis();//获得当前时间的毫秒表示
1计算某一月份的最大天数
Calendar time=CalendargetInstance();timeclear();
timeset(CalendarYEAR,year);
timeset(CalendarMONTH,i-1);//注意,Calendar对象默认一月为0
int day=timegetActualMaximum(CalendarDAY_OF_MONTH);//本月份的天数
注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间
2Calendar和Date的转化
(1) Calendar转化为Date
Calendar cal=CalendargetInstance();Date date=calgetTime();
(2) Date转化为Calendar
Date date=new Date();Calendar cal=CalendargetInstance();
calsetTime(date);
3格式化输出日期时间
Date date=new Date();SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Systemoutprintln(dfformat(date));
4计算相隔天数的方法
public int getDaysBetween (Calendar d1, Calendar d2){if (d1after(d2)){ // swap dates so that d1 is start and d2 is end
javautilCalendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2get(CalendarDAY_OF_YEAR) - d1get(CalendarDAY_OF_YEAR);
int y2 = d2get(CalendarYEAR);
if (d1get(CalendarYEAR) != y2){
d1 = (Calendar) d1clone();
do{
days += d1getActualMaximum(CalendarDAY_OF_YEAR);//得到当年的实际天数
d1add(CalendarYEAR, 1);
} while (d1get(CalendarYEAR) != y2);
}
return days;
}
以上就是关于java如何获取当前时间 年月日 时分秒全部的内容,包括:java如何获取当前时间 年月日 时分秒、java 如何用calendar类生成万年历、java怎么分开获取系统年月日等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)