`

定义一个取得当前系统日期时间的工具类

    博客分类:
  • JAVA
 
阅读更多

开发中经常需要取得日期,而且每次取得日期的时候代码都会重复,所以既然是重复的代码就可以将其定义成一个类,以方便重复调用,但是在操作的时候有一点特别需要注意:如果月会是9月,则应该显示09,但是如果是09的话,则数字肯定会忽略到0。

1.Calendar 类操作 (取得日期时间、中文的日期时间、时间戳)

除了取出日期之外,取得时间戳也是一种比较常见的操作,例如:以下日期:2009-01-16 11:25:34.953

时间戳:20090116112534953

 

import java.util.* ;	// 导入需要的工具包

class DateTime{		// 以后直接通过此类就可以取得日期时间
	private Calendar calendar = null ;// 声明一个Calendar对象,取得时间
	
	public DateTime(){			// 构造方法中直接实例化对象
		this.calendar = new GregorianCalendar() ;	
	}
	
       // 得到的是一个日期:格式为:yyyy-MM-dd HH:mm:ss.SSS
	public String getDate(){	
		// 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
		StringBuffer buf = new StringBuffer() ;
		buf.append(calendar.get(Calendar.YEAR)).append("-") ;// 增加年
		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1,2)).append("-") ;// 增加月
		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH),2)).append(" ") ;// 取得日
		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY),2)).append(":") ;// 取得时
		buf.append(this.addZero(calendar.get(Calendar.MINUTE),2)).append(":") ;
		buf.append(this.addZero(calendar.get(Calendar.SECOND),2)).append(".") ;
		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND),3)) ;
		return buf.toString() ;
	}
	
	public String getDateComplete(){		// 得到的是一个日期:格式为:yyyy年MM月dd日 HH时mm分ss秒SSS毫秒
		// 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
		StringBuffer buf = new StringBuffer() ;
		buf.append(calendar.get(Calendar.YEAR)).append("年") ;	// 增加年
		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1,2)).append("月") ;// 增加月
		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH),2)).append("日") ;// 取得日
		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY),2)).append("时") ;// 取得时
		buf.append(this.addZero(calendar.get(Calendar.MINUTE),2)).append("分") ;	// 取得分
		buf.append(this.addZero(calendar.get(Calendar.SECOND),2)).append("秒") ;	// 取得秒
		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND),3)).append("毫秒") ;	// 取得毫秒
		return buf.toString() ;
	}
	
	public String getTimeStamp(){		// 得到的是一个时间戳
		// 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
		StringBuffer buf = new StringBuffer() ;
		buf.append(calendar.get(Calendar.YEAR)) ;	// 增加年
		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1,2)) ;	// 增加月
		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH),2)) ;	// 取得日
		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY),2)) ;	// 取得时
		buf.append(this.addZero(calendar.get(Calendar.MINUTE),2)) ;		// 取得分
		buf.append(this.addZero(calendar.get(Calendar.SECOND),2));		// 取得秒
		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND),3)) ;	 // 取得毫秒
		return buf.toString() ;
	}
	
	// 考虑到日期中存在前导0,所以在此处加上补零的方法
	private String addZero(int num,int len){
		StringBuffer s = new StringBuffer() ;
		s.append(num) ;
		while(s.length()<len){	// 如果长度不足,则继续补0
			s.insert(0,"0") ;	// 在第一个位置处补0
		}
		return s.toString() ;
	}
}

public class DateDemo{
	public static void main(String args[]){
		DateTime dt = new DateTime() ;
		System.out.println("系统日期:"+dt.getDate()) ;
		System.out.println("中文日期:"+dt.getDateComplete()) ;
		System.out.println("时间戳:"+dt.getTimeStamp()) ;
	}
}

 输出结果:

 

系统日期:2013-03-11 17:23:43.174
中文日期:2013年03月11日17时23分43秒174毫秒
时间戳:20130311172343174

 2.基于SimpleDateFormat类操作

 

 

java.util.Date 已经就是一个完整的日期了,SimpleDateFormat 类中存在一个方法,可以针对于Date重新格式化,那么如果现在将一个表示当前日期的 date 对象通过 SimpleDateFormat 类指定好的模板进行相关的格式化操作的话,那么取得时间就非常的方便了。

import java.util.* ;	// 导入需要的工具包
import java.text.* ;	// 导入SimpleDateFormat所在的包

class DateTime{		// 以后直接通过此类就可以取得日期时间
	private SimpleDateFormat sdf = null ;	// 声明SimpleDateFormat对象
	
	// 得到的是一个日期:格式为:yyyy-MM-dd HH:mm:ss.SSS
	public String getDate(){		
		this.sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") ;
		return this.sdf.format(new Date()) ;// 将当前日期进行格式化操作
	}
	
	// 得到的是一个日期:格式为:yyyy年MM月dd日 HH时mm分ss秒SSS毫秒
	public String getDateComplete(){		
		this.sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒") ;
		return this.sdf.format(new Date()) ;// 将当前日期进行格式化操作
	}
	
	// 得到的是一个时间戳
	public String getTimeStamp(){		
		this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS") ;
		return this.sdf.format(new Date()) ;// 将当前日期进行格式化操作
	}
}
public class DateDemo{
	public static void main(String args[]){
		DateTime dt = new DateTime() ;
		System.out.println("系统日期:"+dt.getDate()) ;
		System.out.println("中文日期:"+dt.getDateComplete()) ;
		System.out.println("时间戳:"+dt.getTimeStamp()) ;
	}
}

 输出结果:

系统日期:2013-03-11 17:26:51.564
中文日期:2013年03月11日17时26分51秒564毫秒
时间戳:20130311172651565

 总结:

 

通过代码可以发现,直接使用SimpleDateFormat 类取得时间会比使用Calendar 类更方便,而且不用去增加补零操作,所以在开发中如果需要取得一个日期的话,则基本上都是使用 SimpleDateFormat 类进行操作,以上的操作代码为取得日期的一个简单做法。

分享到:
评论

相关推荐

    java 使用DateFormat类获取系统的当前时间

    在Java编程语言中,`DateFormat` 类是 `java.text` 包中的一个核心类,用于格式化日期和时间。这个类提供了多种方法来解析、格式化以及比较日期和时间。当我们需要从系统获取当前时间并以特定的格式展示时,`...

    java 使用Date类获取系统的当前时间

    总的来说,`java.util.Date` 类在获取和表示当前系统时间上是一个基础且实用的工具,虽然在新的Java版本中有了更好的替代品,但理解其工作原理对于理解Java的日期和时间处理至关重要。在实际编程中,根据项目需求和...

    Java日期工具类,Java时间工具类,Java时间格式化

    本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...

    日期工具类,包括各种日期之间的转换

    根据提供的文件信息,本文将对日期工具类进行深入解析,并详细介绍其包含的主要功能与实现方法。此工具类主要涉及到了日期格式化、日期解析、获取当前时间等实用操作。 ### 一、概述 该日期工具类名为 `DateUtil`...

    Date日期操作工具类

    6. **其他操作**:除了上述功能,工具类还可能包含其他实用方法,如检查日期是否在某个范围内、获取当前日期和时间、获取日期的某一部分(如月份、星期几)等。 在提供的压缩包文件`DateUtils.java`中,我们可以...

    日期转换工具类

    在实际开发中,我们还可能遇到其他的日期处理场景,如计算两个日期之间的差值、获取当前日期和时间、处理时区差异等。Java 8引入的`java.time`包提供了更现代、更易于使用的日期和时间API,比如`LocalDate`, `...

    日期工具Java类

    Java中的日期工具类用于处理日期和时间的计算,根据给定的描述和部分代码内容,以下是一些关键知识点: 1. Java标准库中处理日期和时间的类: 在Java中处理日期和时间的标准类库包括java.util.Date、java.util....

    java 使用SimpleDateFormat类获取系统的当前时间

    在Java编程语言中,`SimpleDateFormat` 是一个非常重要的日期和时间格式化工具类,它允许程序员以特定的模式来解析和格式化日期。当我们需要从系统获取当前时间并按照自定义格式显示时,`SimpleDateFormat` 就派上了...

    VC++获取系统当前时间

    `CTime` 是MFC中的一个类,用于表示日期和时间,并提供了各种日期和时间的操作方法。以下是如何使用`CTime`来获取并格式化当前时间: ```cpp CTime t; t = CTime::GetCurrentTime(); CString str; str = t.Format(_...

    C#工具类库类库 包含所有的常用工具类

    日历和时间操作类帮助开发者处理日期和时间,例如获取当前时间、计算时间差、格式化日期等。 配置文件操作类方便读取和写入应用程序的配置信息,如XML或ini文件,使得配置信息可以独立于代码进行修改。 条形码类...

    Android-Java中的日期转化格式DateUtil工具类

    9. `getNow()`: 返回当前系统的日期和时间,方便快捷地获取`Date`对象。 10. `getDateStringInUTC(Date date)`: 在UTC时区下格式化日期,这对于跨时区应用特别有用。 在`DateUtil-master`这个压缩包中,应该包含了...

    Java工具类

    这个工具类通常用于处理日期和时间相关的操作,如获取当前日期、格式化日期字符串、计算两个日期之间的差值等。Java 8引入了`java.time`包,提供了更强大的日期和时间API,但这个工具类可能包含了基于旧的`java....

    ssh常用工具类

    7. **DateConverter.java**:日期转换工具类,用于日期和时间的处理,如日期之间的转换、格式化输出、解析输入的日期字符串等。在处理日期相关的业务逻辑时非常实用。 8. **Encrypt.java**:加密工具类,包含常见的...

    SpringBoot之自带工具类常用示例

    例如,你可以使用`LocalDateTime.now()`获取当前日期时间,或者使用`DateTimeFormatter`进行格式化。 2. **`java.util.concurrent`** Spring Boot也充分利用了并发工具类,如`ExecutorService`, `Future`, `...

    Java各种工具类

    `System`类提供了一些系统级别的服务,如获取当前时间、标准输入/输出流操作等;`Math`类则提供了各种数学运算方法。 3. **java.io**: 提供了输入输出流相关的类和接口,用于进行数据的读写操作。例如,...

    kettle输出文本文件名设有系统时间组成的动态文件名.zip

    这个步骤将获取当前系统的日期和时间信息。 3. **配置“获取系统时间”**:在“获取系统时间”的设置中,可以指定需要的时间格式,例如"yyyyMMdd_HHmmss",这会生成类似"20230406_153027"的格式,包含了年、月、日...

    C#中获取当前时间

    它返回一个表示本地计算机上当前日期和时间的`DateTime`对象。例如: ```csharp DateTime currentTime = DateTime.Now; ``` #### 2. `ToString()`方法与格式化 `ToString()`方法可以用来将`DateTime`对象转换为...

    java日期时间获取

    文章重点介绍了 `SimpleDateFormat` 类的使用方法,并通过具体的例子演示了如何获取当前日期时间、解析字符串形式的日期时间以及判断某个时间是否处于两个时间点之间。 #### 详细介绍: ##### 1. 日期时间的格式化...

    利用C#中的文本框控件制作日期、时钟显示器,显示当前的系统的详细日期与时间

    总结,通过以上步骤,我们利用C#的Windows Forms创建了一个简单的日期和时钟显示器,使用TextBox控件显示当前系统的时间,并通过Timer控件实现定时更新。这只是一个基础示例,实际应用中可能需要考虑更多因素,例如...

    安卓开发框架工具类相关-一些工具类.rar

    3. **日期时间工具类**:处理日期和时间是常见需求,此类工具类可能会提供格式化日期、比较日期、获取当前时间戳等功能,简化时间相关的操作。 4. **图片加载工具类**:在Android应用中,图片加载和处理是必不可少...

Global site tag (gtag.js) - Google Analytics