`
wwqit
  • 浏览: 457 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于Java语言中的时间格式化

阅读更多
在做统计报表时,须将时间格式化为所需格式存入数据库……
package com.sgcc.kpi.rs.entity.sample;

import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;

import org.apache.commons.lang3.time.DateUtils;

/**
 * 向数据库插入指标信息时各种格式化时间字符串——公共类,静态调用
 * @author wu_wenqi
 * @version 2012-06-25
 */
public class Pubsysdate {
	
	private static Calendar c = Calendar.getInstance();
	
	/**
	 * 按年统计时所需系统时间
	 * @see 例如:to_date('2012-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
	 */
	public static String SYSDATE_FOR_YEAR = getSysdateForYear();
	
	/**
	 * 按月统计时所需系统时间
	 * @see 例如:to_date('2012-6-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
	 */
	public static String SYSDATE_FOR_MONTH = getSysdateForMonth();
	
	/**
	 * 按周统计
	 */
	public static String SYSDATE_FOR_WEEK = getSysdateForWeek();
	
	/**
	 * 按天统计时所需系统时间
	 * @see 例如:to_date('2012-6-25 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
	 */
	public static String SYSDATE_FOR_DAY = getSysdateForDay();
	
	/**
	 * 按年统计时所需系统时间方法
	 * @return 例如:to_date('2012-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
	 */
	private static String getSysdateForYear(){
		String re = "to_date('";
		re += c.get(Calendar.YEAR) - 1;
		re += "-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')";
		return re;
	}
	
	/**
	 * 按月统计时所需系统时间方法
	 * @return 例如:to_date('2012-6-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
	 */
	private static String getSysdateForMonth(){
		String re = "to_date('";
		if(c.get(Calendar.MONTH) == 0){
			re += c.get(Calendar.YEAR) - 1;
			re += "-12";
		}else{
			re += c.get(Calendar.YEAR);
			re += "-";
			re += c.get(Calendar.MONTH);
		}
		re += "-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')";
//		System.out.println(re);
		return re;
	}
	
	/**
	 * 按周统计
	 * @return
	 */
	private static String getSysdateForWeek(){
		DateFormat df = DateFormat.getDateInstance();
		String re = "to_date('";
		Date datetemp = c.getTime();
		Date date = DateUtils.addWeeks(datetemp, -1);
		int temp = date.getDay();
		if(temp == 1){//周一
			date = DateUtils.addDays(date, -0);
		}else if(temp == 2){//周二
			date = DateUtils.addDays(date, -1);
		}else if(temp == 3){//周三
			date = DateUtils.addDays(date, -2);
		}else if(temp == 4){//周四
			date = DateUtils.addDays(date, -3);
		}else if(temp == 5){//周五
			date = DateUtils.addDays(date, -4);
		}else if(temp == 6){//周六
			date = DateUtils.addDays(date, -5);
		}else if(temp == 0){
			date = DateUtils.addDays(date, -6);
		}
		re += df.format(date);
		re += " 00:00:00', 'yyyy-mm-dd hh24:mi:ss')";
		return re;
	}
	
	/**
	 * 按天统计时所需系统时间
	 * @return 例如:to_date('2012-6-25 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
	 */
	private static String getSysdateForDay(){
		String re = "to_date('";
		if(c.get(Calendar.DAY_OF_MONTH) == 1){
			if(c.get(Calendar.MONTH) == 0){ //一月份要返回上年的最后一天
				re += c.get(Calendar.YEAR) - 1;
				re += "-12-31";
			}else if(c.get(Calendar.MONTH) == 2){ //二月要判断是28天还是29天
				re += c.get(Calendar.YEAR);
				re += "-";
				re += c.get(Calendar.MONTH);
				re += "-" + getLastDayFor2Month(c.get(Calendar.YEAR));
			}else if(c.get(Calendar.MONTH) == 1 
					|| c.get(Calendar.MONTH) == 3 
					|| c.get(Calendar.MONTH) == 5 
					|| c.get(Calendar.MONTH) == 7 
					|| c.get(Calendar.MONTH) == 8 
					|| c.get(Calendar.MONTH) == 10 
					|| c.get(Calendar.MONTH) == 12){ //每月31天
				re += c.get(Calendar.YEAR);
				re += "-";
				re += c.get(Calendar.MONTH);
				re += "-31";
			}else{ //每月30天
				re += c.get(Calendar.YEAR);
				re += "-";
				re += c.get(Calendar.MONTH);
				re += "-30";
			}
		}else{
			re += c.get(Calendar.YEAR);
			re += "-";
			re += c.get(Calendar.MONTH) + 1;
			re += "-";
			re += c.get(Calendar.DAY_OF_MONTH) - 1;
		}
		re += " 00:00:00', 'yyyy-mm-dd hh24:mi:ss')";
		return re;
	}
	
	/**
	 * 判断当年是闰年还是平年并返回二月的最后一天
	 */
	private static int getLastDayFor2Month(int year){
		if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
		{
		    return 29;
		}else{
			return 28;
		}
	}
}
分享到:
评论

相关推荐

    java时间日期格式化工具类

    在Java编程语言中,时间日期处理是常见的任务之一,尤其在开发业务系统或者数据分析时,对日期进行格式化显得尤为重要。Java提供了多种处理日期和时间的API,包括`java.util.Date`、`java.text.SimpleDateFormat`、`...

    JAVA_日期格式化

    本篇将深入探讨Java中日期格式化的相关知识点,帮助你理解和掌握这一核心技能。 1. **日期和时间类库**: 在Java早期版本中,主要使用`java.util.Date`和`java.text.SimpleDateFormat`进行日期格式化。然而,自...

    java日期格式化

    Java日期格式化是Java开发中常见的一项任务,它涉及到日期和时间的处理,尤其是在数据输入输出、用户界面显示以及数据库交互等场景。Java提供了一系列的类来帮助我们完成日期和时间的格式化工作,其中最常用的包括`...

    java数据格式化

    Java数据格式化是Java编程语言中处理数据呈现和解析的核心技术之一,主要涉及对文本、日期、数值等数据类型的格式化处理,以适应不同的显示需求和国际化标准。本文将深入探讨Java数据格式化的关键概念、类和方法,...

    java格式化日期类

    在Java编程语言中,日期和时间的处理是一个常见的任务,特别是在开发过程中需要显示或存储日期时。...在提供的"格式化时间.txt"文件中,可能包含了更多关于日期格式化实例或示例代码,你可以查阅以获取更多信息。

    Java的日期格式化常用方法

    本文将深入探讨Java中日期格式化的常用方法,主要关注`SimpleDateFormat`和`java.time`包下的`DateTimeFormatter`。 首先,`SimpleDateFormat`是旧版日期时间API的一部分,尽管在Java 8之后被推荐使用新的`java....

    java来格式化日期为标准格式

    在Java编程语言中,日期和时间的处理是常见的任务,特别是在数据存储、显示或交换时。Java提供了多种方法来格式化日期,使其符合标准格式。本文将深入探讨如何使用Java来格式化日期为标准格式。 首先,我们了解日期...

    Java源代码当前日期的格式化.rar

    以上就是关于Java中日期格式化的关键知识点,通过阅读提供的源代码,你可以进一步了解这些概念的实际应用。如果你在解压文件后遇到任何问题或需要更深入的解释,记得查阅相关的Java API文档,或者利用在线资源如...

    与众不同的 Java 日期格式化大全

    在日期格式化中,语言设置也起着重要作用。例如,年代、月份、星期、上下午标识都可以根据语言设置而变化。我们可以使用 `java.util.Locale` 类来设置语言环境。 例如,要将日期对象格式化为 "G y-MM-dd Z E HH:mm:...

    java 实现国际化 中英文语言切换

    - 使用国际化友好的日期和数字格式,避免硬编码。 通过以上步骤和方法,我们可以有效地在Java和JSP应用程序中实现中英文语言的切换,为全球用户提供更友好的用户体验。在实际开发中,还需要结合项目需求和团队规范...

    java 代码格式化工具 使用sun标准格式

    Java编程语言以其严谨性和可读性著称,为了保持代码的整洁和一致性,开发者通常会使用代码格式化工具。在Java开发中,Sun Microsystems(现在是Oracle)制定了一套标准的编码规范,被称为"Sun标准格式"。这个标准...

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

    在Java编程语言中,日期和时间处理是常见且重要的任务。...无论是进行简单的日期格式化,还是复杂的日期计算,都能游刃有余。在实际项目中,结合使用新旧API,可以充分利用各自的优势,提高代码质量。

    java处理日期,data的格式化

    在Java编程语言中,日期和时间的处理是一个重要的部分,特别是在开发需要处理日志记录、数据分析、用户界面显示等场景的应用程序时。本篇将详细探讨如何使用Java处理日期,并进行格式化。 Java中的日期处理主要涉及...

    JAVA发送邮件实现,消息格式化

    这篇文章可能更深入地探讨了`MessageFormat`的用法,包括如何处理复杂的格式规范、格式化数字、日期和时间,以及在多语言环境中使用`MessageFormat`等。 总结来说,Java发送邮件涉及到JavaMail API的使用,其中`...

    一个简单的java库用于将显示日期格式化成几分钟几天之前这样的格式

    在IT行业中,尤其是在Java开发领域,日期和时间的处理是一项非常常见的任务。为了方便开发者更加直观地展示日期信息,如“几分钟前”或“几天前”,一个名为"marlonlom-timeago"的简单Java库应运而生。这个库的目标...

    notepad++java代码格式化插件

    标题 "notepad++java代码格式化插件" 指的是在Notepad++文本编辑器中使用的特定插件,用于格式化Java源代码。Notepad++是一款流行的、免费的源代码编辑器,支持多种编程语言,它以其轻量级、可自定义和强大的功能而...

    java中日期格式的转换

    在Java编程语言中,日期和时间的处理是...通过上述示例,我们可以看到Java提供了丰富的工具和API来处理日期和时间的格式化与转换,这些技术在日常开发中极为常见,掌握它们对于任何Java开发者而言都是必不可少的技能。

    Java_格式化字符串 汇总

    Java中的字符串格式化功能是处理和展示数据时不可或缺的一部分,尤其在需要将各种数据类型转换为特定格式的字符串时显得尤为重要。本文将深入探讨Java中`String`类的`format()`方法,及其如何用于创建格式化的字符串...

    java中Date的格式.pdf

    在Java编程语言中,`java.util.Date` 类用于表示日期和时间。这个类在处理日期相关的操作时非常常见。在给定的文件中,我们看到了三个示例,它们分别展示了如何创建Date对象、格式化日期以及解析日期字符串。 1. **...

    Java日期格式转换.doc

    Java 日期格式转换是指在 Java 编程语言中将日期和时间从一种格式转换为另一种格式的过程。日期格式转换是 Java 编程中非常重要的一部分,因为日期和时间是许多应用程序中的关键元素。 在 Java 中,日期和时间通常...

Global site tag (gtag.js) - Google Analytics