java 如何获取当前系统时间

java 如何获取当前系统时间,第1张

/

获取当前系统时间

@return 返回短时间字符串格式yyyy-MM-dd

/

public static String getStringDateShort() {

Date currentTime = new Date();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

String dateString = formatterformat(currentTime);

return dateString;

}

获取当前系统时间

@return返回短时间格式 yyyy-MM-dd

/

public static Date getNowDateShort() {

Date currentTime = new Date();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

String dateString = formatterformat(currentTime);

ParsePosition pos = new ParsePosition(8);

Date currentTime_2 = formatterparse(dateString, pos);

return currentTime_2;

}

代码如下:

importjavatextSimpleDateFormat;

importjavautilCalendar;

importjavautilDate;

publicclassDateTestUtil{

publicstaticvoidmain(String[]args)throwsException{

SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");

Stringstr="20110823";

Datedt=sdfparse(str);

CalendarrightNow=CalendargetInstance();

rightNowsetTime(dt);

rightNowadd(CalendarYEAR,-1);//日期减1年

rightNowadd(CalendarMONTH,3);//日期加3个月

rightNowadd(CalendarDAY_OF_YEAR,10);//日期加10天

Datedt1=rightNowgetTime();

StringreStr=sdfformat(dt1);

Systemoutprintln(reStr);

}

}

注:在Calendar对象的add方法中,第二个参数为正数表示“加”,负数表示“减”。

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

主要组成

Java由四方面组成:

●Java编程语言,即语法。

●Java文件格式,即各种文件夹、文件的后缀。

●Java虚拟机(JVM),即处理class文件的解释器。

●Java应用程序接口(JavaAPI)。

体系

Java分为三个体系,分别为JavaSE(J2SE,Java2PlatformStandardEdition,标准版),

JavaEE(J2EE,Java2Platform,EnterpriseEdition,企业版),

JavaME(J2ME,Java2PlatformMicroEdition,微型版)。

在Java中,如何获取不同时区的当前时间你知道这道题的正确答案应该如何回答吗背后的原理又是什么呢

然后,紧接着,我又提出了以下问题:

为什么以下代码无法得到美国时间。(在东八区的计算机上)

接下来,java课程培训机构就围绕这两个问题,来带领读者一起学习一下哪些和Java中的时间有关的概念。

时区

前面提到了时区,可能很多读者不知道什么是时区,先来简单介绍一下。

时区是地球上的区域使用同一个时间定义。以前,人们通过观察太阳的位置(时角)决定时间,这就使得不同经度的地方的时间有所不同(地方时)。1863年,首次使用时区的概念。时区通过设立一个区域的标准时间部分地解决了这个问题。

世界各个国家位于地球不同位置上,因此不同国家,特别是东西跨度大的国家日出、日落时间必定有所偏差。这些偏差就是所谓的时差。

为了照顾到各地区的使用方便,又使其他地方的人容易将本地的时间换算到别的地方时间上去。有关国际会议决定将地球表面按经线从东到西,划成一个个区域,并且规定相邻区域的时间相差1小时。在同一区域内的东端和西端的人看到太阳升起的时间最多相差不过1小时。当人们跨过一个区域,就将自己的时钟校正1小时(向西减1小时,向东加1小时)

接下来,本文就围绕这两个问题,来带领读者一起学习一下哪些和Java中的时间有关的概念。

时区

前面提到了时区,可能很多读者不知道什么是时区,先来简单介绍一下。

时区是地球上的区域使用同一个时间定义。以前,人们通过观察太阳的位置(时角)决定时间,这就使得不同经度的地方的时间有所不同(地方时)。1863年,首次使用时区的概念。时区通过设立一个区域的标准时间部分地解决了这个问题。

世界各个国家位于地球不同位置上,因此不同国家,特别是东西跨度大的国家日出、日落时间必定有所偏差。这些偏差就是所谓的时差。

为了照顾到各地区的使用方便,又使其他地方的人容易将本地的时间换算到别的地方时间上去。有关国际会议决定将地球表面按经线从东到西,划成一个个区域,并且规定相邻区域的时间相差1小时。在同一区域内的东端和西端的人看到太阳升起的时间最多相差不过1小时。当人们跨过一个区域,就将自己的时钟校正1小时(向西减1小时,向东加1小时

Calendar date = CalendargetInstance();

int day = dateget(CalendarDAY_OF_MONTH);

int month = dateget(CalendarMONTH) + 1;

int year = dateget(CalendarYEAR);

Systemoutprintln("day=" + day);

Systemoutprintln("month=" + month);

Systemoutprintln("year=" + year);

如果再不对的话,看一下你系统的时间对不对。

//我实现一个时钟窗口程序给你了,好让你更容易理解,希望对你有帮助。\x0d\import javaawt;\x0d\import javaawtevent;\x0d\import javautil;\x0d\\x0d\//世界时钟\x0d\public class TimerTest {\x0d\public static void main(String[] args) {\x0d\new TimerTestFrame("世界时钟");\x0d\}\x0d\}\x0d\\x0d\class TimerTestFrame extends Frame {\x0d\/\x0d\ \x0d\/\x0d\private static final long serialVersionUID = 1L;\x0d\\x0d\public TimerTestFrame(String s) {\x0d\super(s);\x0d\addWindowListener(new WindowAdapter() {\x0d\public void windowClosing(WindowEvent e) {\x0d\dispose();\x0d\Systemexit(0);\x0d\}\x0d\});\x0d\setLayout(new GridLayout(2, 6));\x0d\\x0d\ClockCanvas clk1 = new ClockCanvas("北京", "GMT+8"); // 创建时钟\x0d\ClockCanvas clk2 = new ClockCanvas("巴黎", "GMT+2");\x0d\ClockCanvas clk3 = new ClockCanvas("华盛顿", "GMT-4");\x0d\ClockCanvas clk4 = new ClockCanvas("洛衫矶", "GMT-7");\x0d\ClockCanvas clk5 = new ClockCanvas("伦敦", "GMT+1");\x0d\ClockCanvas clk6 = new ClockCanvas("芝加哥", "GMT-5");\x0d\add(clk1);\x0d\add(clk2);\x0d\add(clk3);\x0d\add(clk4);\x0d\add(clk5);\x0d\add(clk6);\x0d\setSize(500, 350); // 设置框架宽高\x0d\setVisible(true);\x0d\}\x0d\}\x0d\\x0d\class ClockCanvas extends Canvas implements Runnable {\x0d\/\x0d\ \x0d\/\x0d\private static final long serialVersionUID = 1L;\x0d\\x0d\private int seconds = 0;\x0d\\x0d\private String city;\x0d\\x0d\private GregorianCalendar calendar;\x0d\\x0d\Thread t;\x0d\\x0d\public ClockCanvas(String c, String tz) {\x0d\city = c;\x0d\//也可以通过TimeZonesetTimeZone(String n)函数改变时区,n为时区参数名。\x0d\calendar = new GregorianCalendar(TimeZonegetTimeZone(tz));\x0d\t = new Thread(this);\x0d\tstart();\x0d\setSize(125, 125); // 设置画布大小\x0d\setBackground(Colorblack);\x0d\}\x0d\\x0d\// 重写父类的方法绘制时钟图形\x0d\public void paint(Graphics g) {\x0d\Graphics2Dg2d = (Graphics2D) g;\x0d\BasicStroke bstroke = new BasicStroke(20f);\x0d\g2dsetStroke(bstroke);\x0d\g2dsetColor(Colorgreen);\x0d\g2ddrawOval(0, 0, 100, 100);\x0d\bstroke = new BasicStroke(50f);\x0d\g2dsetStroke(bstroke);\x0d\g2ddrawLine(50, 0, 50, 5);\x0d\g2ddrawLine(0, 50, 5, 50);\x0d\g2ddrawLine(50, 95, 50, 98);\x0d\g2ddrawLine(95, 50, 98, 50);\x0d\double hourAngle = 2 MathPI (seconds - 3 60 60)\x0d\/ (12 60 60);\x0d\double minuteAngle = 2 MathPI (seconds - 15 60) / (60 60);\x0d\double secondAngle = 2 MathPI (seconds - 15) / (60);\x0d\bstroke = new BasicStroke(50f);\x0d\g2dsetStroke(bstroke);\x0d\g2ddrawLine(50, 50, 50 + (int) (30 Mathcos(hourAngle)),\x0d\50 + (int) (30 Mathsin(hourAngle)));\x0d\bstroke = new BasicStroke(30f);\x0d\g2dsetStroke(bstroke);\x0d\g2ddrawLine(50, 50, 50 + (int) (40 Mathcos(minuteAngle)),\x0d\50 + (int) (40 Mathsin(minuteAngle)));\x0d\bstroke = new BasicStroke(10f);\x0d\g2dsetStroke(bstroke);\x0d\g2ddrawLine(50, 50, 50 + (int) (45 Mathcos(secondAngle)),\x0d\50 + (int) (45 Mathsin(secondAngle)));\x0d\g2dsetColor(Colorred);\x0d\g2ddrawString(city, 35, 115);\x0d\}\x0d\\x0d\public void timeElapsed() {\x0d\//new Date()()获得当前时间\x0d\Systemoutprintln(new Date()());\x0d\calendarsetTime(new Date()());\x0d\seconds = calendarget(CalendarHOUR) 60 60\x0d\+ calendarget(CalendarMINUTE) 60\x0d\+ calendarget(CalendarSECOND);\x0d\}\x0d\\x0d\public void run() {\x0d\try {\x0d\while (true) {\x0d\Threadsleep(300);\x0d\timeElapsed();\x0d\repaint();\x0d\}\x0d\} catch (InterruptedException e) {\x0d\}\x0d\}\x0d\}

一 获取当前系统时间和日期并格式化输出:

import javautilDate;

import javatextSimpleDateFormat;

public class NowString {

public static void main(String[] args) {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

Systemoutprintln(dfformat(new Date()));// new Date()为获取当前系统时间

}

}

二 在数据库里的日期只以年-月-日的方式输出,可以用下面两种方法:

1、用convert()转化函数:

String sqlst = "select convert(varchar(10),bookDate,126) as

convertBookDate from roomBook where bookDate between '2007-4-10' and

'2007-4-25'";

Systemoutprintln(rsgetString("convertBookDate"));

2、利用SimpleDateFormat类:

先要输入两个java包:

import javautilDate;

import javatextSimpleDateFormat;

然后:

定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);

sql语句为:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";

输出:

Systemoutprintln(dfformat(rsgetDate("bookDate")));

java中获取当前日期和时间的方法

import javautilDate;

import javautilCalendar;

import javatextSimpleDateFormat;

public class TestDate{

public static void main(String[] args){

Date now = new Date();

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式

String hehe = dateFormatformat( now );

Systemoutprintln(hehe);

Calendar c = CalendargetInstance();//可以对每个时间域单独修改

int year = cget(CalendarYEAR);

int month = cget(CalendarMONTH);

int date = cget(CalendarDATE);

int hour = cget(CalendarHOUR_OF_DAY);

int minute = cget(CalendarMINUTE);

int second = cget(CalendarSECOND);

Systemoutprintln(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);

}

}

有时候要把String类型的时间转换为Date类型,通过以下的方式,就可以将你刚得到的时间字符串转换为Date类型了。

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

javautilDate time=null;

try {

time= sdfparse(sdfformat(new Date()));

} catch (ParseException e) {

eprintStackTrace();

}

Calendar这个类是很强大的,你的这个需求,一句话就能搞定 完整代码如下:

import javautilCalendar;

public class Test {

public static void main(String[] args) {

//获取今天日期

Calendar cal = CalendargetInstance();

//输出今天是今天多少天

//今天是20111111,所以是第315天 输出:315

Systemoutprintln(calget(CalendarDAY_OF_YEAR));

}

}

DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Date dt = new Date();

fxsetDate(dfparse(dfformat(dt)));

不过这样做有一个问题就是,即使前面将Date型格式化,存到实体类型里的Date仍然不带有格式,直接打印实体的Date型会默认直接调用Date类的toString方法,而Date类的toString方法默认格式是dow mon dd hh:mm:ss zzz yyyy,所以打出的格式会与你想存入的不符合,其实就相当于直接将dt存入了实体中。如果想取出带格式的除非再进行转化,否则得话还是建议把属性改成String型的。

以上就是关于java 如何获取当前系统时间全部的内容,包括:java 如何获取当前系统时间、java 获取本机当前时间并对小时任意加减、Java中的时间处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9812348.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存