精华内容
下载资源
问答
  • java获取当前学期

    2019-08-01 15:46:09
    获取当期学期 NumUtils //继承NumberUtils类 public class NumUtils extends NumberUtils { //把string的数字转化成int public static int obj2int(Object obj) { if (obj != null) { return (int)(to...

    获取当期学期

    NumUtils

    //继承NumberUtils类
    public class NumUtils extends NumberUtils {
    //把string的数字转化成int
    	public static int obj2int(Object obj) {
    		if (obj != null) {
    			return (int)(toDouble(obj.toString()));
    		}
    		return 0;
    	}
    	//把BigDecimal转成double,保留几位小数
    	public static Double getScaleDouble(BigDecimal num, Integer w) {
    		return num.setScale(w, RoundingMode.HALF_UP).doubleValue();
    	}
    	//把Double转成double,保留几位小数
    	public static Double getScaleDouble(Double num, Integer w) {
    		return new BigDecimal(num).setScale(w, RoundingMode.HALF_UP).doubleValue();
    	}
    }
    

    获取当前日期

    	public static void main(String[] args) {
    		//打印出当前学期
    		System.out.println(getCurrentXq1());
    	}
    	//获取当前学期
    	public static String getCurrentXq1(){
    		//获取年份,转成int
    		int year = NumUtils.toInt(DateUtils.getYear());
    		//获取月,转成int
    		int month = NumUtils.toInt(DateUtils.getMonth());
    		//初始化一个stringbuilder容器,用来连接学期
    		StringBuilder sb = new StringBuilder();
    		//默认设成第一学期
    		String num = "一";
    		//如果是当前的9--12月,就是本年加上下一年的学期,学期是第一学期
    		if (month >=9 && month <=12) {	//当年的9 -12月份
    			sb.append(year);
    			sb.append("-");
    			sb.append(year + 1);
    			//如果是1,2月份,那它就是上一年的加上本年的学期,学期是第一学期
    		} else if (month == 1 || month == 2) {	//1,2月份为第一学期
    			sb.append(year - 1);
    			sb.append("-");
    			sb.append(year);
    			//如果是3--9月,那它就是上一年加上本年的学期,学期是第二学期
    		} else if (month >=3 && month <9) {	//第二学期
    			sb.append(year - 1);
    			sb.append("-");
    			sb.append(year);
    			num = "二";
    		}
    		sb.append("第");
    		sb.append(num);
    		sb.append("学期");
    		return sb.toString();
    	}
    
    展开全文
  • Java获取当前时间的年月日作为主键

    千次阅读 2021-03-17 11:50:04
    java获取当前时间戳的方法 Java获取当前时间或者时间戳,用以生成主键,博主在用的有几种方法如下 package com.difu.tjwxqyh.controller; import java.text.SimpleDateFormat; import java.util.Calendar; import ...

    Java获取当前时间的年月日作为主键

    Java获取当前时间或者时间戳,用以生成主键,博主在用的有几种方法如下


    package com.aa.bb.controller;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Random;
    
    import javax.sound.midi.Soundbank;
    
    public class testjava {
    	
    	public static void main(String args[]) {
    		
    		//1.获取当前时间
    		//方式一,获取年月日时分秒毫秒  17位
    		Date currentTime = new Date();
    		SimpleDateFormat formatter = new SimpleDateFormat("YYYYMMddHHmmssSSS");
    		String sdftime1 = formatter.format(currentTime);
    		System.out.println("sdftime1="+sdftime1);
    		
    		//方式一简化版  获取年月日时分秒毫秒  17位
    		String sdftime2=new SimpleDateFormat("YYYYMMddHHmmssSSS").format(new Date());
    		System.out.println("sdftime2="+sdftime2);
    		/*
    		 * 获取到秒,只需要去掉SimpleDateFormat后的三个"SSS"
    		 * */
    		
    		
    		//2.获取当前时间戳
    		//方法 一
    		long time1=System.currentTimeMillis();
    		System.out.println("time1="+time1);
    		//方法 二
    		long time2=Calendar.getInstance().getTimeInMillis();
    		System.out.println("time2="+time2);
    		//方法 三
    		long time3=new Date().getTime();
    		System.out.println("time3="+time3);
    		
    		//3.时间+随机序号生成主键
    		//例如:
    		System.out.println("id=="+new Date().getTime()+getBdid());
    		
    	}
    	
    
    	public static String getBdid() { // 获取随机序号
    		String sjs = "";
    		String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";
    		char[] c = s.toCharArray();
    		Random random = new Random();
    		for (int i = 0; i < 10; i++) {
    			// 带参的nextInt(int x)则会生成一个范围在0~x(不包含X)内的任意正整数
    			/* 例如:int x=new Random.nextInt(100); 则x为一个0~99的任意整数 */
    			sjs = c[random.nextInt(c.length)] + sjs;
    		}
    		Date currentTime = new Date();
    		SimpleDateFormat formatter = new SimpleDateFormat("YYYYMMddHHmmss");
    		String dateString = formatter.format(currentTime);
    		return dateString + sjs;
    	}
    	
    
    }
    
    

    运行结果:

    		sdftime1=20210317114917393
    		sdftime2=20210317114917421
    		time1=1615952957421
    		time2=1615952957421
    		time3=1615952957421
    		id==161595295742120210317114917Oa4rroYLKB
    

    创作不易,如果这篇文章能够帮助到你,希望能关注或收藏一下博主,如果文章内容有问题也可留言讨论,我们一起学习,一起进步!!

    展开全文
  • Java 获取当前时间

    2020-07-17 14:57:55
    实例(获取当前时间): import java.util.*; import java.text.*; public class DateDemo { public static void main(String args[]) { Date dNow = new Date( ); SimpleDateFormat ft = new ...

    实例(获取当前时间):

    import  java.util.*;
    import java.text.*;
     
    public class DateDemo {
       public static void main(String args[]) {
     
          Date dNow = new Date( );
          SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
     
          System.out.println("当前时间为: " + ft.format(dNow));
       }
    }

    结果:

    当前时间为: 2018-09-06 10:16:34

     

    使用printf格式化日期

    printf 方法可以很轻松地格式化时间和日期。使用两个字母格式,它以 %t 开头并且以下面表格中的一个字母结尾。

    转  换  符

    说    明

    示    例

    c

    包括全部日期和时间信息

    星期六 十月 27 14:21:20 CST 2007

    F

    "年-月-日"格式

    2007-10-27

    D

    "月/日/年"格式

    10/27/07

    r

    "HH:MM:SS PM"格式(12时制)

    02:25:51 下午

    T

    "HH:MM:SS"格式(24时制)

    14:28:16

    R

    "HH:MM"格式(24时制)

    14:28

    实例一: 

    import java.util.Date;
     
    public class DateDemo {
     
      public static void main(String args[]) {
         // 初始化 Date 对象
         Date date = new Date();
     
         //c的使用  
        System.out.printf("全部日期和时间信息:%tc%n",date);          
        //f的使用  
        System.out.printf("年-月-日格式:%tF%n",date);  
        //d的使用  
        System.out.printf("月/日/年格式:%tD%n",date);  
        //r的使用  
        System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);  
        //t的使用  
        System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);  
        //R的使用  
        System.out.printf("HH:MM格式(24时制):%tR",date);  
      }
    }

    结果:

    全部日期和时间信息:星期一 九月 10 10:43:36 CST 2012
    年-月-日格式:2012-09-10
    月/日/年格式:09/10/12
    HH:MM:SS PM格式(12时制):10:43:36 上午
    HH:MM:SS格式(24时制):10:43:36
    HH:MM格式(24时制):10:43

    实例二:

    import java.util.*;
      
    public class DateDemo {
       public static void main(String args[]) {
           Date date=new Date();                                      
            //b的使用,月份简称  
            String str=String.format(Locale.US,"英文月份简称:%tb",date);       
            System.out.println(str);                                                                              
            System.out.printf("本地月份简称:%tb%n",date);  
            //B的使用,月份全称  
            str=String.format(Locale.US,"英文月份全称:%tB",date);  
            System.out.println(str);  
            System.out.printf("本地月份全称:%tB%n",date);  
            //a的使用,星期简称  
            str=String.format(Locale.US,"英文星期的简称:%ta",date);  
            System.out.println(str);  
            //A的使用,星期全称  
            System.out.printf("本地星期的简称:%tA%n",date);  
            //C的使用,年前两位  
            System.out.printf("年的前两位数字(不足两位前面补0):%tC%n",date);  
            //y的使用,年后两位  
            System.out.printf("年的后两位数字(不足两位前面补0):%ty%n",date);  
            //j的使用,一年的天数  
            System.out.printf("一年中的天数(即年的第几天):%tj%n",date);  
            //m的使用,月份  
            System.out.printf("两位数字的月份(不足两位前面补0):%tm%n",date);  
            //d的使用,日(二位,不够补零)  
            System.out.printf("两位数字的日(不足两位前面补0):%td%n",date);  
            //e的使用,日(一位不补零)  
            System.out.printf("月份的日(前面不补0):%te",date);  
       }
    }

    结果:

    英文月份简称:May
    本地月份简称:五月
    英文月份全称:May
    本地月份全称:五月
    英文星期的简称:Thu
    本地星期的简称:星期四
    年的前两位数字(不足两位前面补0):20
    年的后两位数字(不足两位前面补0):17
    一年中的天数(即年的第几天):124
    两位数字的月份(不足两位前面补0):05
    两位数字的日(不足两位前面补0):04
    月份的日(前面不补0):4

     

    展开全文
  • 如何使用Java获取当前日期/时间

    千次阅读 2020-01-05 13:07:07
    Java获取当前日期/时间的最佳方法是什么?

    用Java获取当前日期/时间的最佳方法是什么?


    #1楼

    采用:

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
    System.out.println(timeStamp );
    

    (正在工作。)


    #2楼

    创建日期对象并简单地将其打印下来。

    Date d = new Date(System.currentTimeMillis());
    System.out.print(d);
    

    #3楼

    如果您希望当前日期为字符串,请尝试以下操作:

    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Date date = new Date();
    System.out.println(dateFormat.format(date));
    

    要么

    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    System.out.println(dateFormat.format(cal.getTime()));
    

    http://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/


    #4楼

    与上述解决方案相似。 但是我总是发现自己在寻找这段代码:

    Date date=Calendar.getInstance().getTime();
    System.out.println(date);
    

    #5楼

    Java 8中为:

    LocalDateTime.now()
    

    并且如果您需要时区信息:

    ZonedDateTime.now()
    

    并且如果您想打印花式格式化的字符串:

    System.out.println(ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME))
    

    #6楼

    我发现这是最好的方法:

    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    System.out.println(dateFormat.format(cal.getTime())); // 2014/08/06 16:00:22
    

    #7楼

        // 2015/09/27 15:07:53
        System.out.println( new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime()) );
    
        // 15:07:53
        System.out.println( new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) );
    
        // 09/28/2015
        System.out.println(new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime()));
    
        // 20150928_161823
        System.out.println( new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) );
    
        // Mon Sep 28 16:24:28 CEST 2015
        System.out.println( Calendar.getInstance().getTime() );
    
        // Mon Sep 28 16:24:51 CEST 2015
        System.out.println( new Date(System.currentTimeMillis()) );
    
        // Mon Sep 28
        System.out.println( new Date().toString().substring(0, 10) );
    
        // 2015-09-28
        System.out.println( new java.sql.Date(System.currentTimeMillis()) );
    
        // 14:32:26
        Date d = new Date();
        System.out.println( (d.getTime() / 1000 / 60 / 60) % 24 + ":" + (d.getTime() / 1000 / 60) % 60 + ":" + (d.getTime() / 1000) % 60 );
    
        // 2015-09-28 17:12:35.584
        System.out.println( new Timestamp(System.currentTimeMillis()) );
    
        // Java 8
    
        // 2015-09-28T16:16:23.308+02:00[Europe/Belgrade]
        System.out.println( ZonedDateTime.now() );
    
        // Mon, 28 Sep 2015 16:16:23 +0200
        System.out.println( ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) );
    
        // 2015-09-28
        System.out.println( LocalDate.now(ZoneId.of("Europe/Paris")) ); // rest zones id in ZoneId class
    
        // 16
        System.out.println( LocalTime.now().getHour() );
    
        // 2015-09-28T16:16:23.315
        System.out.println( LocalDateTime.now() );
    

    #8楼

    1st了解java.util.Date类

    1.1如何获取当前日期

    import java.util.Date;
    
    class Demostration{
        public static void main(String[]args){
            Date date = new Date(); // date object
            System.out.println(date); // Try to print the date object
        }
    }
    

    1.2如何使用getTime()方法

    import java.util.Date;
    public class Main {
        public static void main(String[]args){
            Date date = new Date();
            long timeInMilliSeconds = date.getTime();
            System.out.println(timeInMilliSeconds);
        }
    }
    

    这将返回自格林威治标准时间1970年1月1日00:00:00起的毫秒数,以进行时间比较。

    1.3如何使用SimpleDateFormat类格式化时间

    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    class Demostration{
        public static void main(String[]args){
            Date date=new Date();
            DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
            String formattedDate=dateFormat.format(date);
            System.out.println(formattedDate);
        }
    }
    

    另外,请尝试使用其他格式格式,例如“ yyyy-MM-dd hh:mm:ss”,然后选择所需的格式。 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

    2理解java.util.Calendar类

    2.1使用日历类获取当前时间戳

    import java.util.Calendar;
    
    class Demostration{
        public static void main(String[]args){
            Calendar calendar=Calendar.getInstance();
            System.out.println(calendar.getTime());
        }
    }
    

    2.2尝试使用setTime和其他设置方法将日历设置为不同的日期。

    资料来源: http : //javau91.blogspot.com/


    #9楼

    采用:

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd::HH:mm:ss");
    System.out.println(sdf.format(System.currentTimeMillis()));
    

    print语句将在调用时而不是在创建SimpleDateFormat时打印时间。 因此,可以重复调用它而无需创建任何新对象。


    #10楼

    import java.util.*;
    import java.text.*;
    
    public class DateDemo {
       public static void main(String args[]) {
          Date dNow = new Date( );
          SimpleDateFormat ft = 
          new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
          System.out.println("Current Date: " + ft.format(dNow));
       }
    }
    

    您可以使用日期作为当前数据。 所以使用SimpleDateFormat获取格式


    #11楼

    tl; dr

    Instant.now()                         // Capture the current moment in UTC, with a resolution of nanoseconds. Returns a `Instant` object.
    

    … 要么 …

    ZonedDateTime.now(                    // Capture the current moment as seen in…
        ZoneId.of( "America/Montreal" )   // … the wall-clock time used by the people of a particular region (a time zone).
    )                                     // Returns a `ZonedDateTime` object.
    

    java.time

    一些答案中提到java.time类是现代的替代品, 该类是与最早的Java版本捆绑在一起的麻烦的旧旧日期时间类的替代品。 以下是更多信息。

    在此处输入图片说明

    时区

    其他答案无法解释时区在确定当前日期和时间方面如何至关重要。 对于任何给定的时刻,日期时间在全球范围内都会因区域而异。 例如,午夜过后几分钟是法国巴黎的新一天,而在蒙特利尔魁北克仍然是“昨天”。

    Instant

    作为最佳实践,您的许多业务逻辑和数据存储/交换都应在UTC中完成。

    要获得当前时刻的UTC在分辨率纳秒 ,使用Instant类。 常规计算机硬件时钟的准确性受到限制,因此当前时刻可能以毫秒或微秒而不是纳秒的速度捕获。

    Instant instant = Instant.now();
    

    ZonedDateTime

    您可以将“ Instant调整为其他时区。 应用ZoneId对象以获取ZonedDateTime

    ZoneId z = ZoneId.of( "America/Montreal" );
    ZonedDateTime zdt = instant.atZone( z );
    

    我们可以跳过Instant并直接获取当前的ZonedDateTime

    ZonedDateTime zdt = ZonedDateTime.now( z );
    

    始终传递该可选的时区参数。 如果省略,则将应用JVM的当前默认时区。 默认甚至可以运行时随时可能改变。 不要使您的应用不受外部控制。 始终指定所需/预期的时区。

    ZonedDateTime do_Not_Do_This = ZonedDateTime.now(); // BAD - Never rely implicitly on the current default time zone.
    

    您以后可以从ZonedDateTime提取Instant ZonedDateTime

    Instant instant = zdt.toInstant();
    

    当您想要时间轴上的实际时刻时,请始终使用InstantZonedDateTime而不是LocalDateTimeLocal…类型故意没有时区的概念,因此它们仅表示可能时刻的粗略概念。 要获取实际时刻,您必须分配一个时区以将Local…类型转换为ZonedDateTime并使其有意义。

    LocalDate

    LocalDate类表示没有日期和时区的仅日期值。

    ZoneId z = ZoneId.of( "America/Montreal" );
    LocalDate today = LocalDate.now( z );  // Always pass a time zone.
    

    弦乐

    要生成表示日期时间值的字符串,只需对java.time类的标准ISO 8601格式调用toString

    String output = myLocalDate.toString();  // 2016-09-23
    

    … 要么 …

    String output = zdt.toString();  // 2016-09-23T12:34:56.789+03:00[America/Montreal]
    

    ZonedDateTime类通过在方括号中明智地附加时区名称来扩展标准格式。

    对于其他格式,请在“堆栈溢出”中搜索有关DateTimeFormatter类的许多问题和答案。

    避免LocalDateTime

    相反,由RamanSB问题的评论,你应该使用LocalDateTime类为当前日期与时间。

    LocalDateTime故意缺少任何时区或UTC偏移信息。 所以,当您在跟踪时间轴上的特定时刻,这是恰当的。 当然适合捕获当前时刻。

    LocalDateTime只有一个日期和时间,例如“ 2020年1月23日中午”,但是我们不知道这是日本东京中午还是美国俄亥俄州托莱多中午,相隔两个小时。

    “本地”用语是违反直觉的。 它意味着任何地点,而不是任何一个特定地点。 例如,今年的圣诞节从12月25日的午夜开始: 2017-12-25T00:00:00 ,以LocalDateTime表示。 但这意味着全球各地在不同时间的午夜。 午夜首先发生在基里巴斯 ,之后是新西兰,再之后是印度,等等,依此类推,圣诞节开始之前,法国在加拿大的孩子们仍在等待这一天之前,已经过了几个小时。 这些圣诞节开始点中的每一个都将表示为单独的ZonedDateTime


    从系统外部

    如果您不能信任系统时钟,请参阅Java:从服务器而不是系统时钟获取当前日期和时间,以及我的答案

    几个外部无线电时钟设备的照片

    java.time.Clock

    要利用当前时刻的备用供应商,请编写抽象java.time.Clock类的子类。

    您可以将Clock实现作为参数传递给各种java.time方法。 例如, Instant.now( clock )

    Instant instant = Instant.now( yourClockGoesHere ) ;
    

    出于测试目的,请注意Clock本身可静态提供的Clock的替代实现: fixedoffsettick和更多。


    关于java.time

    java.time框架内置于Java 8及更高版本中。 这些类取代了麻烦的旧的旧式日期时间类,例如java.util.DateCalendarSimpleDateFormat

    要了解更多信息,请参见Oracle教程 。 并在Stack Overflow中搜索许多示例和说明。 规格为JSR 310

    现在处于维护模式Joda-Time项目建议迁移到java.time类。

    您可以直接与数据库交换java.time对象。 使用与JDBC 4.2或更高版本兼容的JDBC驱动程序 。 不需要字符串,不需要java.sql.*类。

    在哪里获取java.time类?

    与哪个版本的Java或Android一起使用的哪个java.time库的表

    ThreeTen-Extra项目使用其他类扩展了java.time。 该项目为将来可能在java.time中添加内容提供了一个试验场。 您可以在这里找到一些有用的类,比如IntervalYearWeekYearQuarter ,和更多


    #12楼

    您可以自己使用Date对象和格式。 例如,很难格式化并且需要更多代码,

    Date dateInstance = new Date();
    int year = dateInstance.getYear()+1900;//Returns:the year represented by this date, minus 1900.
    int date = dateInstance.getDate();
    int month = dateInstance.getMonth();
    int day = dateInstance.getDay();
    int hours = dateInstance.getHours();
    int min = dateInstance.getMinutes();
    int sec = dateInstance.getSeconds();
    
    String dayOfWeek = "";
    switch(day){
        case 0:
            dayOfWeek = "Sunday";
            break;
        case 1:
            dayOfWeek = "Monday";
            break;
        case 2:
            dayOfWeek = "Tuesday";
            break;
        case 3:
            dayOfWeek = "Wednesday";
            break;
        case 4:
            dayOfWeek = "Thursday";
            break;
        case 5:
            dayOfWeek = "Friday";
            break;
        case 6:
            dayOfWeek = "Saturday";
            break;
    }
    System.out.println("Date: " + year +"-"+ month + "-" + date + " "+ dayOfWeek);
    System.out.println("Time: " + hours +":"+ min + ":" + sec);
    

    输出:

    Date: 2017-6-23 Sunday
    Time: 14:6:20
    

    如您所见,这是最糟糕的方法,并且根据oracle文档已不建议使用

    Oracle文档:

    Date类表示特定的时间瞬间,精度为毫秒。

    在JDK 1.1之前,Date类具有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始,应使用Calendar类在日期和时间字段之间进行转换,而DateFormat类应用于格式化和解析日期字符串。 不建议使用Date中的相应方法。

    因此,您也可以使用Calendar类,

    Calendar.YEAR;
    //and lot more
    

    要获取当前时间,可以使用:

    Calendar rightNow = Calendar.getInstance();
    

    文件:

    与其他对语言环境敏感的类一样, Calendar提供了一个类方法getInstance ,用于获取这种类型的通常有用的对象。 Calendar的getInstance方法返回一个Calendar对象,其日历字段已使用当前日期和时间初始化。

    下面的代码仅获取日期

    Date rightNow = Calendar.getInstance().getTime();
    System.out.println(rightNow);
    

    此外, Calendar类具有子类。 GregorianCalendarCalendar的其中一个具体子类之一,它提供了世界上大多数国家使用的标准日历系统。

    使用GregorianCalendar示例:

    Calendar cal = new GregorianCalendar();
    int hours = cal.get(Calendar.HOUR);
    int minute = cal.get(Calendar.MINUTE);
    int second = cal.get(Calendar.SECOND);
    int ap = cal.get(Calendar.AM_PM);
    
    String amVSpm;
    if(ap == 0){
        amVSpm = "AM";
    }else{
        amVSpm = "PM";
    }
    
    String timer = hours + "-" + minute + "-" + second + " " +amVSpm;
    System.out.println(timer);
    

    您可以使用SimpleDateFormat ,这是格式化日期的简单快捷方式:

    String pattern = "yyyy-MM-dd";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
    
    String date = simpleDateFormat.format(new Date());
    System.out.println(date);
    

    阅读此Jakob Jenkov教程:Java SimpleDateFormat

    正如其他人提到的那样,当我们需要从日期开始进行操作时,我们没有简单,最佳的方法,或者我们不满意内置于类,API中的内容。

    例如,当我们需要在两个日期之间取得差异时,当我们需要比较两个日期(对此也有内置方法)时 ,等等。 我们不得不使用第三方库。 Joda Time是其中一种最受欢迎​​的产品

    另请阅读:

    。 现在最快乐的事情是(在Java 8中),由于任何原因,没有人需要下载和使用库。 一个使用Java 8获取当前日期和时间的简单示例

    LocalTime localTime = LocalTime.now();
    System.out.println(localTime);
    
    //with time zone
    LocalTime localTimeWtZone = LocalTime.now(ZoneId.of("GMT+02:30"));
    System.out.println(localTimeWtZone);
    

    阅读有关Java 8 date优秀博客文章之一

    并保持谨慎,以查找有关Java日期和时间的更多信息,因为您可以获取/使用更多的方法和/或有用的方法。

    编辑:

    根据@BasilBourque的评论,麻烦的旧日期时间类(例如java.util.Datejava.util.Calendarjava.text.SimpleTextFormat现在已被遗留 ,由java.time取代。


    #13楼

    对于java.util.Date,只需创建一个新的Date()

    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Date date = new Date();
    System.out.println(dateFormat.format(date)); //2016/11/16 12:08:43
    

    对于java.util.Calendar,使用Calendar.getInstance()

    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    System.out.println(dateFormat.format(cal)); //2016/11/16 12:08:43
    

    对于java.time.LocalDateTime,使用LocalDateTime.now()

    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
    LocalDateTime now = LocalDateTime.now();
    System.out.println(dtf.format(now)); //2016/11/16 12:08:43
    

    对于java.time.LocalDate,使用LocalDate.now()

    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
    LocalDate localDate = LocalDate.now();
    System.out.println(dtf.format(localDate)); //2016/11/16
    

    参考: https : //www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/


    #14楼

    我将继续回答这个问题,因为当我遇到相同的问题时,这就是我所需要的:

    Date currentDate = new Date(System.currentTimeMillis());
    

    现在, currentDate是Java Date对象中的当前日期。


    #15楼

     System.out.println( new SimpleDateFormat("yyyy:MM:dd - hh:mm:ss a").format(Calendar.getInstance().getTime()) );
        //2018:02:10 - 05:04:20 PM
    

    AM / PM的日期/时间


    #16楼

    新的数据时间API是在Java 8诞生时引入的。这是由于在旧的数据时间API中引起的以下问题所致。

    难以处理时区:需要编写大量代码来处理时区。

    不是线程安全的:java.util.Date不是线程安全的。

    因此,看看Java 8

    import java.time.LocalDate;
    import java.time.LocalTime;
    import java.time.LocalDateTime;
    import java.time.Month;
    
    
    public class DataTimeChecker {
    
        public static void main(String args[]) {
            DataTimeChecker dateTimeChecker = new DataTimeChecker();
            dateTimeChecker.DateTime();
        }
    
        public void DateTime() {
            // Get the current date and time
            LocalDateTime currentTime = LocalDateTime.now();
            System.out.println("Current DateTime: " + currentTime);
    
            LocalDate date1 = currentTime.toLocalDate();
            System.out.println("Date : " + date1);
    
            Month month = currentTime.getMonth();
            int day = currentTime.getDayOfMonth();
            int seconds = currentTime.getSecond();
    
            System.out.println("Month : " + month);
            System.out.println("Day : " + day);
            System.out.println("Seconds : " + seconds);
    
            LocalDateTime date2 = currentTime.withDayOfMonth(17).withYear(2018);
            System.out.println("Date : " + date2);
    
            //Prints 17 May 2018
            LocalDate date3 = LocalDate.of(2018, Month.MAY, 17);
            System.out.println("Date : " + date3);
    
            //Prints 04 hour 45 minutes
            LocalTime date4 = LocalTime.of(4, 45);
            System.out.println("Date : " + date4);
    
            // Convert to a String 
            LocalTime date5 = LocalTime.parse("20:15:30");
            System.out.println("Date : " + date5);
        }
    }
    

    上面代码的输出:

    Current DateTime: 2018-05-17T04:40:34.603
    Date : 2018-05-17
    Month : MAY
    Day : 17
    Seconds : 34
    Date : 2018-05-17T04:40:34.603
    Date : 2018-05-17
    Date : 04:45
    Date : 20:15:30
    

    #17楼

    您看过java.util.Date吗? 这正是您想要的。


    #18楼

    只需创建一个Date对象...

    Date date = new Date();
    

    #19楼

    有许多不同的方法:


    #20楼

    看一下Date类。 还有一个更新的Calendar类,它是执行许多日期/时间操作的首选方法(不赞成使用Date上的许多方法。)

    如果只需要当前日期,则可以创建一个新的Date对象或调用Calendar.getInstance();


    #21楼

    这取决于您想要的日期/时间形式:

    • 如果您希望日期/时间为单个数值,那么System.currentTimeMillis()会为您提供该值,以UNIX纪元后的毫秒数表示(以Java long )。 此值是UTC时间点的增量,并且与本地时区无关...假设系统时钟已正确设置。

    • 如果您希望日期/时间的格式允许您以数字方式访问组件(年,月等),则可以使用以下方式之一:

      • new Date()为您提供了一个使用当前日期/时间初始化的Date对象。 问题在于Date API方法大多存在缺陷……并且已过时。

      • Calendar.getInstance()使用默认的LocaleTimeZone为您提供一个使用当前日期/时间初始化的Calendar对象。 其他重载允许您使用特定的Locale和/或TimeZone 。 日历可以工作...但是API仍然很麻烦。

      • new org.joda.time.DateTime()使用默认的时区和年表为您提供了一个使用当前日期/时间初始化的Joda-time对象。 Joda还有许多其他替代方案,在此无法描述。 (但请注意,有些人报告说Joda时间存在性能问题。例如,第一次使用Jodatime的LocalDateTime速度很慢 。)

      • 在Java 8中,调用LocalDateTime.now()ZonedDateTime.now()将为您提供当前日期/时间的表示形式1

    在Java 8之前,大多数了解这些事情的人都建议Joda-time拥有(到目前为止)最好的Java API来完成涉及时间点和持续时间计算的事情。 对于Java 8,这不再是事实。 但是,如果您已经在代码库中使用Joda time,则没有2个强烈的理由进行迁移。


    1-请注意,LocalDateTime不包含时区。正如javadoc所说: “如果没有其他信息(例如偏移量或时区),它就无法在时间轴上表示时刻。”

    2-如果不这样做,您的代码不会中断,也不会收到弃用警告。当然,Joda代码库可能会停止获取更新,但是不太可能需要它们。没有更新意味着稳定性,这是一件好事还要注意,很有可能有人会修复Java平台中由回归引起的问题。


    #22楼

    java.util.Date date = new java.util.Date();
    

    它使用实例化的时间自动填充。


    #23楼

    如前所述,基本的Date()可以完成获取当前时间所需的工作。 在我最近的大量使用Java日期的经验中,内置类有很多奇怪的地方(以及许多Date类方法的弃用)。 在我看来,一个奇怪的是,月份是基于0指数的,从技术角度来看这是有道理的,但实际上可能会非常令人困惑。

    如果您只关心应该满足的当前日期-但是,如果您打算对日期进行大量操作/计算,那么使用第三方库可能会非常有益(存在许多第三方库,因为许多Java开发人员对这些日期不满意内置功能)。

    我第二次引用Stephen C的建议,因为我发现Joda-time在简化日期工作方面非常有用,它的文档也非常丰富,您可以在网上找到许多有用的示例。 我什至最终编写了一个静态包装器类(如DateUtils),用于合并和简化所有常见的日期操作。


    #24楼

    我创建了这种方法,对我有用。

    public String GetDay() {
        return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd")));
    }
    
    public String GetNameOfTheDay() {
        return String.valueOf(LocalDateTime.now().getDayOfWeek());
    }
    
    public String GetMonth() {
        return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("MM")));
    }
    
    public String GetNameOfTheMonth() {
        return String.valueOf(LocalDateTime.now().getMonth());
    }
    
    public String GetYear() {
        return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy")));
    }
    
    public boolean isLeapYear(long year) {
        return Year.isLeap(year);
    }
    
    public String GetDate() {
        return GetDay() + "/" + GetMonth() + "/" + GetYear();
    }
    
    public String Get12HHour() {
        return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("hh")));
    }
    
    public String Get24HHour() {
        return String.valueOf(LocalDateTime.now().getHour());
    }
    
    public String GetMinutes() {
        return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("mm")));
    }
    
    public String GetSeconds() {
        return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("ss")));
    }
    
    public String Get24HTime() {
        return Get24HHour() + ":" + GetMinutes();
    }
    
    public String Get24HFullTime() {
        return Get24HHour() + ":" + GetMinutes() + ":" + GetSeconds();
    }
    
    public String Get12HTime() {
        return Get12HHour() + ":" + GetMinutes();
    }
    
    public String Get12HFullTime() {
        return Get12HHour() + ":" + GetMinutes() + ":" + GetSeconds();
    }
    

    #25楼

    只需尝试以下代码:

    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    public class CurrentTimeDateCalendar {
        public static void getCurrentTimeUsingDate() {
            Date date = new Date();
            String strDateFormat = "hh:mm:ss a";
            DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
            String formattedDate= dateFormat.format(date);
            System.out.println("Current time of the day using Date - 12 hour format: " + formattedDate);
        }
        public static void getCurrentTimeUsingCalendar() {
            Calendar cal = Calendar.getInstance();
            Date date=cal.getTime();
            DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
            String formattedDate=dateFormat.format(date);
            System.out.println("Current time of the day using Calendar - 24 hour format: "+ formattedDate);
        }
    }
    

    样本输出是:

    使用日期的一天中的当前时间-12小时格式:晚上11:13:01

    使用日历的一天中的当前时间-24小时格式:23:13:01

    有关更多信息:

    用Java获取当前日期时间


    #26楼

    Java 8或以上

    LocalDateTime.now() and ZonedDateTime.now()
    

    #27楼

    如果您只需要以YYYY.MM.DD-HH.MM.SS格式(非常常见)输出时间戳,则可以采用以下方法:

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
    
    展开全文
  • 1、创建测试类(DateTest5.java) package com.jeff; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateTest5 { public static void main(String[] ...
  • java获取当前本地日期时间

    万次阅读 2018-06-10 12:16:04
    方法一 ...import java.text.*; import java.util.*; public class HelloDate{ public static void main(String[] args){ Date date = new Date(); /* * DateFormat.getDateInstance()为获...
  • Java获取当前年月日、时间

    万次阅读 2016-01-31 22:53:41
    两种方法,通过Date类或者通过Calendar类。Date类比较简单,但是要得到...import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.L
  • java获取当前日期后6个月

    千次阅读 2017-03-01 10:03:36
    GregorianCalendar now = new ... //可以是天数或月数 数字自定 -6前6个月  System.out.println(fmtrq.format(now.getTime()));  String str=fmtrq.format(now.getTime());  System.out.println(str);
  • 获取系统当前时间的函数
  • 在日常解决代码时,遇到了获取当前月即日期的一个问题,从网上从到答案后,有一处问题很不懂,在那个博主获取当前月份时+1;再往后面看,又有一个 获取当日日期-1的代码,经过一番探索后的到了答案,再次记录一下。 ...
  • 适用calendar类迭代某月的全部天数。 @org.junit.Test public void testIterator(){ Calendar c = Calendar.getInstance(); int year = 2016; for (int i=0;i;... int lastDay = c.g
  • Java随机产生月份

    2017-05-28 14:50:17
    import java.util.Scanner; public class Switch1 { public static void main(String[] args){ int x=(int)(1+Math.random()*12-1+1); @SuppressWarnings("resource")//取消对input的警报 Scanner input=new ...
  • java获取当前时间以及对当前时间操作详解

    万次阅读 多人点赞 2017-05-12 17:47:30
    java中时间的操作一直是自己的一个短板,希望这次总结后,会加深印象 在jdk1.0中,Date类是唯一的一个代表时间的类,但是Date类不便实现国际化,所以从JDK1.1开始,推荐使用Calendar类进行时间和日期的处理 获取当前...
  • 一、时间戳定义(摘自百度百科) 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日...二、获取当前时间戳的几种方法 方法一:通过System的currentTimeMillis()方法 System.out.println(Syst
  • 参考博客:https://www.cnblogs.com/IcanFixIt/p/8539007.html import java.time.DayOfWeek; import java.time.LocalDate; public class LocalDateDemo { public static void main(String[] args) { LocalD...
  • 获取近N个月以及每月的第一天及最后一天 public boolean timeCMonth(String date) { String lastDay = ""; String firstDay = ""; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); //获取前月的第...
  • java 根据年 月 获取当前月每周日期区间
  • java代码实现如下 view source print?  /**  * 英文简写(默认)如:2010-12-01  */  public static String ...
  • 受到疫情影响我从过完年一直呆在家里,索性学点知识方便以后跳槽涨薪,于是从二月份开始学习阿里P8架构师纯手打的一份Java面经手册,没想到5月初我成功从我们三线的一个小公司跳槽进了腾讯,虽然等级不高,但是涨薪...
  • 这个方法是获取系统的精确时间,获取的时间是一个时间戳的格式,以毫秒数构成的长串数字。可以使用SimpleDateFormat来设置显示的格式。 System.out.println(System.currentTimeMillis()); SimpleDateFormat ...
  • 获取当前日期、获取当前时间、获取指定格式的日期时间、时间戳 代码如下,复制粘贴改包名即可使用, package com.llw.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java....
  • java的Calendar,获取月份少一月的问题及其它注意事项本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:代码块import java.util.*; public class DateClass { public static void ...
  • System.out.println("当前时间为: " + ft.format(dNow)); 第二行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。 注意:有的格式大写,有的格式小写,例如 MM 是...
  • java数字日期总结

    2020-05-23 18:21:41
    数字操作类 Math 类; Random类 大数字操作类 Math 就是专门进行数据计算的操作类,里面提供了一系列的数学计算方法 在Math类中提供的一切... Random类(在java.util包下)例如彩票使用 大浮点数:BigDecimal BigI.
  • 对于这类经常出现的问题,Java为开发人员提供了Calendar类来进行日期-时间的操作。 Calendar类位于包util工具包,使用时用import导入 import java.util.Calendar Calendar类是一个抽象类,它为特定瞬间与一组.....
  • DecimalFormat类(用于格式化数字)、Math类(为各种数学计算提供了工具方法)、Random类(为java处理随机数问题提供了各种方法)、BigInteger类与BigDecimal类(为所有的大数字处理提供了相应的数学运算操作方法) ...
  • java 8 解析英文月份,英文星期等

    千次阅读 2018-11-23 14:07:19
    原来,java 8的DateTimeFormatter默认使用本地的时区,由于在国内,月份是“十一月”之类的,就匹配不到 只需要在构造DateTimeFormatter的时候指定时区即可 样例代码:   DateTimeFormatter dateTimeFormatter ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,564
精华内容 6,625
关键字:

java获取当前月份数字

java 订阅