`
功夫小当家
  • 浏览: 186393 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DateTime 类常用API

    博客分类:
  • java
阅读更多

         开发中经常使用到日期,我比较常用的是joda-time包中的DateTime类,里面提供了的api基本满足了日常需求,以下是常用API的使用:

package test;

import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import org.joda.time.DateTime;
import org.joda.time.DateTimeConstants;
import org.joda.time.DateTimeZone;
import org.joda.time.Duration;
import org.joda.time.Interval;
import org.joda.time.LocalDate;
import org.joda.time.LocalTime;
import org.joda.time.Period;
import org.joda.time.PeriodType;

public class TestDateTime {
	
	public static void main(String args[]) {
		/*
		 * 1.初始化
		 */
		//方法一:取系统点间
		DateTime dt = new DateTime();

		//方法二:通过java.util.Date对象生成
		dt = new DateTime(new Date());

		//方法三:指定年月日点分秒生成(参数依次是:年,月,日,时,分,秒,毫秒)
		dt = new DateTime(2012, 5, 20, 13, 14, 0, 0);

		//方法四:ISO8601形式生成
		dt = new DateTime("2012-05-20");
		dt = new DateTime("2012-05-20T13:14:00");

		//只需要年月日的时候
		LocalDate localDate = new LocalDate(2009, 9, 6);// September 6, 2009

		//只需要时分秒毫秒的时候
		LocalTime localTime = new LocalTime(13, 30, 26, 0);// 1:30:26PM

		/*
		 * 2.获取年月日点分秒 
		 */
		//年  
		int year = dt.getYear();  
		//月  
		int month = dt.getMonthOfYear();  
		//日  
		int day = dt.getDayOfMonth();  
		//星期  
		int week = dt.getDayOfWeek();  
		//点  
		int hour = dt.getHourOfDay();  
		//分  
		int min = dt.getMinuteOfHour();  
		//秒  
		int sec = dt.getSecondOfMinute();  
		//毫秒  
		int msec = dt.getMillisOfSecond();  
		
	 
		// 判断当前是星期几
		switch(dt.getDayOfWeek()) {  
		case DateTimeConstants.SUNDAY:  
		    System.out.println("星期日");  
		    break;  
		case DateTimeConstants.MONDAY:  
		    System.out.println("星期一");  
		    break;  
		case DateTimeConstants.TUESDAY:  
		    System.out.println("星期二");  
		    break;  
		case DateTimeConstants.WEDNESDAY:  
		    System.out.println("星期三");  
		    break;  
		case DateTimeConstants.THURSDAY:  
		    System.out.println("星期四");  
		    break;  
		case DateTimeConstants.FRIDAY:  
		    System.out.println("星期五");  
		    break;  
		case DateTimeConstants.SATURDAY:  
		    System.out.println("星期六");  
		    break;  
		}  
		
		/*
		 * 3.与JDK日期对象的转换
		 */	
		//转换成java.util.Date对象  
		Date d1 = new Date(dt.getMillis());  
		Date d2 = dt.toDate();  
		  
		//转换成java.util.Calendar对象  
		Calendar c1 = Calendar.getInstance();  
		c1.setTimeInMillis(dt.getMillis());  
		Calendar c2 = dt.toCalendar(Locale.getDefault());
		
		
		/*
		 * 4.日期前后推算 (这个方法比较实用)
		 */
		//天
		DateTime yesterday = dt.minusDays(1);   
		DateTime tomorrow = dt.plusDays(1);  

		//月
		DateTime lastMonth = dt.minusMonths(1);        
		DateTime nextMonth = dt.plusMonths(1);   
		
		//周
		DateTime lastWeek = dt.minusWeeks(-1);        
		DateTime nexWeek = dt.plusWeeks(1);
		
		//年  
		DateTime lastYear = dt.minusYears(1);          
		DateTime nextYear = dt.plusYears(1);  
		
		
		/*
		 * 5.取特殊日期 
		 */		  
		//月末日期    
		DateTime lastday = dt.dayOfMonth().withMaximumValue();  
		  
		//90天后那周的周一  
		DateTime firstday = dt.plusDays(90).dayOfWeek().withMinimumValue(); 
		
		
		/*
		 * 6.设置时区
		 */
		//日本时间  
		DateTimeZone.setDefault(DateTimeZone.forID("Asia/Tokyo"));  
		dt = new DateTime();  
		  
		//伦敦时间  
		dt = new DateTime(DateTimeZone.forID("Europe/London"));  
		
		//东八区时间
		DateTimeZone.setDefault(DateTimeZone.forID("Asia/Shanghai"));
		
		
		/*
		 * 7.计算区间
		 */
		DateTime begin = new DateTime("2012-02-01");  
		DateTime end = new DateTime("2012-05-01");  
		  
		//计算区间毫秒数  
		Duration d = new Duration(begin, end);  
		long time = d.getMillis();  
		  
		//计算区间天数  
		Period p = new Period(begin, end, PeriodType.days());  
		int days = p.getDays();  
		  
		//计算特定日期是否在该区间内  
		Interval i = new Interval(begin, end);  
		boolean contained = i.contains(new DateTime("2012-03-01"));  
		
		
		/*
		 * 8.日期比较 
		 */
		DateTime dt1 = new DateTime("2012-02-01");  
		DateTime dt2 = new DateTime("2012-05-01");  
		  
		//和系统时间比  
		boolean b1 = dt1.isAfterNow();  
		boolean b2 = dt1.isBeforeNow();  
		boolean b3 = dt1.isEqualNow();  
		  
		//和其他日期比  
		boolean f1 = dt1.isAfter(dt2);  
		boolean f2 = dt1.isBefore(dt2);  
		boolean f3 = dt1.isEqual(dt2);  

		/*
		 * 9.格式化输出 
		 */
		DateTime dateTime = new DateTime();  
		  
		String s1 = dateTime.toString("yyyy/MM/dd hh:mm:ss.SSSa");  
		String s2 = dateTime.toString("yyyy-MM-dd HH:mm:ss");  
		String s3 = dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa");  
		String s4 = dateTime.toString("yyyy/MM/dd HH:mm ZZZZ");  //ZZZZ 表示 时区
		String s5 = dateTime.toString("yyyy/MM/dd HH:mm Z");  	
	}
}

 

 

分享到:
评论

相关推荐

    常用API

    "常用API"通常指的是那些在开发过程中频繁使用的API集合,涵盖了各种语言和框架的核心功能。这些API可以帮助开发者快速实现特定任务,如数据处理、网络通信、用户界面构建等。以下将详细介绍一些常见的API及其应用...

    详解在c#语言中DateTime类的使用及其常用技巧.txt

    ### 在C#语言中DateTime类的使用及其常用技巧详解 #### 概述 在C#编程语言中,`DateTime`类是处理日期和时间的重要工具。它提供了多种方法来获取、设置以及操作日期和时间数据。本文将详细介绍`DateTime`类的一些...

    自己整理的C#常用工具类

    在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。这些工具类通常包含静态方法,不涉及实例化,直接通过类名调用,降低了代码冗余,提高了代码复用...

    java常用API举例

    本文将深入探讨Java API中的一些常见且重要的类和方法,结合实际代码示例进行解析。 1. **String类**:Java中的字符串是不可变对象,它在程序中扮演着重要角色。例如,`concat()`用于连接两个字符串,`substring()`...

    C3常用的Api软件

    以下是一些C#中常用API的详细说明: 1. `DateTime` 类:这个类用于处理日期和时间。`System.DateTime currentTime = new System.DateTime();` 创建一个日期时间对象。`DateTime.Now` 属性返回当前系统时间,你可以...

    Yii2中datetime类的使用

    DateTime类提供了丰富的API来处理日期和时间。下面介绍一些常用的操作: 1. 输出当前时间 ```php $datetime = new \DateTime(); echo $datetime->format('Y-m-d H:i:s'); ``` 2. 输出给定的时间 ```php $...

    28个PHP常用类

    - `DateTime` 类:处理日期和时间,提供了丰富的API。 - `DateInterval` 和 `DatePeriod` 类:分别用于表示时间间隔和生成时间周期。 4. **文件和文件系统**: - `SplFileInfo` 类:提供了关于文件和目录的信息...

    几百个常用的 API 函数的简介

    在“几百个常用的 API 函数的简介”中,我们可以期待涵盖广泛的API,包括操作系统级别的API,如Windows API,以及各种编程语言中的库函数,例如C++标准库、Java的Java API、Python的标准库等。这些API通常涉及文件...

    MyHelper-master-C#工具类含API文档

    05.DateTime的辅助类 MyDateTimeHelper.cs 06.常用的目录操作辅助类 MyDirHelper.cs 07.枚举操作辅助类 MyEnumHelper 08.Excel操作辅助类(无需VBA引用) MyExcelHelper.cs 09.打开、保存文件对话框操作辅助类 ...

    C# 常用工具类 日志操作(log4net) 配置管理、字符串工具、DateTime工具、图片工具、文件工具、加密工具 等

    4. **DateTime工具**: DateTime工具类提供了日期和时间的操作,如计算两个日期之间的差值、格式化日期输出、获取当前日期和时间等。这对于处理日期和时间相关的业务逻辑非常有用。 5. **图片工具**: 图片工具类主要...

    C#常用类集

    在.NET框架中,C#语言提供了丰富的...以上就是"C#常用类集"中涉及的关键知识点,这些工具类使得C#程序员能够高效地开发应用程序,处理各种数据和资源。了解并熟练使用这些类库,对于提升代码质量和开发效率至关重要。

    C#常用的42个类

    在C#编程语言中,掌握常用的类是提升开发效率的关键。以下是对标题“C#常用的42个类”中提及的一些重要类的详细介绍,这些类广泛应用于各种C#项目中。 1. **System.String**: 表示不可变的字符序列,是所有字符串的...

    Microsoft.WindowsAPICodePack dll

    通过引用这两个dll文件,开发者可以在C#项目中导入Microsoft.WindowsAPICodePack命名空间,然后直接使用诸如ShellObject、Folder、File等类,来操作Windows Shell对象。 例如,如果你想要获取某个文件的详细信息,...

    C# api接口传参.doc

    C# API 接口传参详解 本篇文章主要介绍了 C# WebApi 接口传参详解,通过 get、post、put、delete 四种请求方式分别谈论基础类型、实体、数组等类型的参数如何传递。 一、get 请求参数传递 get 请求是最常用的请求...

    C# 常用公共类

    本资源包“C# 常用公共类”集合了一些在开发过程中常用的公共类库,旨在帮助开发者提高工作效率,下面将详细介绍其中可能包含的一些核心知识点。 1. **System.Object**:所有C#类的基类,提供了基础的成员如`...

    PHP常用的一些类——FROM:www.php100.com

    Reflection API用于运行时分析类、接口、函数、方法和扩展。它可以帮助获取元数据、检查类型、调用方法等。例如,`$reflectionClass = new ReflectionClass('MyClass');`,`echo $reflectionClass->getName();`输出...

    谷歌日历api.zip

    Python是常用的编程语言,用于对接谷歌日历API,提供了简单易用的库如`google-auth`和`google-api-python-client`来实现这一目标。 在使用谷歌日历API之前,首先需要在谷歌开发者控制台(Google Developer Console...

    java开发常用工具类.zip

    "java开发常用工具类.zip" 包含了一系列这样的工具类,这些类可以帮助开发者节省时间,提高代码的可读性和可维护性。下面将详细讨论这个压缩包中可能包含的一些关键工具类和相关知识点。 1. **日期操作工具类**: ...

    29个PHP常用类

    标题中的"29个PHP常用类"是指一系列已经预先编写好的、具有特定功能的PHP类,它们涵盖了常见的编程需求,旨在帮助PHP开发者更高效地完成任务。 这些类可能包括但不限于以下几种类型: 1. **错误和异常处理类**:...

Global site tag (gtag.js) - Google Analytics