利用java日期类生成数据仓库维度表

利用java日期类生成数据仓库维度表

Date类:

最基础的日期时间类,返回一个相对日期的毫秒数。精确到毫秒,但不支持日期的国际化和分时区显示。Date 类从Java 开发包(JDK)1.0 就开始进化,当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年。 这些方法现在遭到了批评并且已经被转移到了Calendar类里去了,这种改进旨在更好的处理日期数据的国际化格式。

Calender类:

相对于Date更加强大的时间类,是抽象类,提供了常规的日期修改功能和国际化支持。

GregorianCalendar类:

提供处理日期的方法,用于计算日期,是Calendar类的子类,有用的是有个判断闰年的方法。

DateFormat类:

可以接受字符串输入、输出,提供了将日期/时间信息进行格式化处理的功能。

SimpleDateFormat类:

功能更强大的日期时间格式化类,自定义格式化日期和时间。

java.util.Locale类:

描述特定的地理、政治、文化上的地区,Locale对象主要封装了“地区”和“语言种类”两方面 .

下面用代码来模拟生成日期维度表的一些字段值:

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.Locale;

public class DateUtil {

         Localeloc = new Locale("zh", "CN");

//      Localeloc = new Locale("en", "CN");

         Calendarcalendar = new GregorianCalendar(loc);

         publicvoid init(){

                   calendar.set(2014,9, 10);

         }

         publicDate add(int day){

                   calendar.add(Calendar.DAY_OF_MONTH,day);

                   returncalendar.getTime();

         }

         publicvoid showDate(Date date){

                   p("TimeInMillis",calendar.getTimeInMillis()+"");

                   p("ShortDate",java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT,loc)

                                     .format(date));

                   p("MEDIUMDate",java.text.DateFormat.getDateInstance(java.text.DateFormat.MEDIUM,loc)

                                     .format(date));

                   p("LONGDate",java.text.DateFormat.getDateInstance(java.text.DateFormat.LONG, loc)

                                     .format(date));

                   p("LONGFULL",java.text.DateFormat.getDateInstance(java.text.DateFormat.FULL, loc)

                                     .format(date));

                   SimpleDateFormatsdf = new SimpleDateFormat("D",loc);

                   p("dayin year",sdf.format(date));

                   sdf.applyPattern("d");

                   p("dayin month",sdf.format(date));

                   sdf.applyPattern("EEEE");

                   p("dayname",sdf.format(date));

                   sdf.applyPattern("E");

                   p("dayabbreviation",sdf.format(date));

                   sdf.applyPattern("ww");

                   p("weekin year",sdf.format(date));

                   sdf.applyPattern("W");

                   p("weekin month",sdf.format(date));

                   sdf.applyPattern("MM");

                  String month = sdf.format(date);

                   p("monthnumber",sdf.format(date));

                   sdf.applyPattern("MMMM");

                   p("monthname",sdf.format(date));

                   sdf.applyPattern("MMM");

                   p("monthabbreviation",sdf.format(date));

                   sdf.applyPattern("yy");

                   p("year2",sdf.format(date));  

                   sdf.applyPattern("yyyy");

                   p("year4",sdf.format(date));

                   intquarter_number = (int)Math.ceil( (Integer.parseInt(month) /3.0));

                   p("quertername","Q"+quarter_number);

                   intfirst_day_of_week = calendar.getFirstDayOfWeek();

                   p("is_first_day_of_week",firstWeekDay(first_day_of_week));

         }

         publicvoid p(String desc,String date){

                   System.out.println(desc+ " : " + date);

         }

         publicvoid calAndShow(){

                   for(int i = 0; i < 3; i++) {

                            init();

                            showDate(add(i));

                            System.out.println();

                   }

         }

         publicString firstWeekDay(int first){

                   returnfirst == calendar.get(Calendar.DAY_OF_WEEK) ? "yes" : "no";

         }

         publicstatic void main(String[] args) {

                   DateUtild = new DateUtil();

                   d.calAndShow();

                   System.out.println(Math.ceil(11.0/3.0));

         }

}

时间: 2024-08-02 02:46:11

利用java日期类生成数据仓库维度表的相关文章

使用javaDate类代数据仓库维度表

使用javaDate类代数据仓库维度表 Date类别: ,返回一个相对日期的毫秒数.精确到毫秒.但不支持日期的国际化和分时区显示. Date 类从Java 开发包(JDK)1.0 就開始进化,当时它仅仅包括了几个取得或者设置一个日期数据的各个部分的方法. 比方说月, 日, 和年. 这些方法如今遭到了批评而且已经被转移到了Calendar类里去了,这样的改进旨在更好的处理日期数据的国际化格式. Calender类: 相对于Date更加强大的时间类,是抽象类,提供了常规的日期改动功能和国际化支持.

Java定时任务:利用java Timer类实现定时执行任务的功能

一.概述 在java中实现定时执行任务的功能,主要用到两个类,Timer和TimerTask类.其中Timer是用来在一个后台线程按指定的计划来执行指定的任务. TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务,具体要执行的代码写在TimerTask需要被实现的run方法中. 二.先看一个最简单的例子 我们通过代码来说明 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

mysql中生成时间维度表

利用mysql常用日期函数生成时间维度表,效率最高,最简单,无需其他的一些工具支持.生成结果示例如下图: # time span SET @d0 = "2012-01-01"; SET @d1 = "2012-12-31"; SET @date = date_sub(@d0, interval 1 day); # set up the time dimension table DROP TABLE IF EXISTS time_dimension; CREATE T

利用Java随机,生成随机学生数据

为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement.batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据. 一.要生成的学生数据 students表设计如下: 其中前三项是数据库自动生成的,后面的10项需要程序生成. >>基于实际要求,插入的Student数据中,major和jnshuId不能同时相同.但由于随机数的不确定性,在程序中限制两个Student的major和jnshuId不同时相同复杂而低效.因此,选择在数据库中将major

Java 日期类Date 学习

Java?日期构造构造函数1 声明一个日期, 默认返回当前系统时间Date() 构造函数2 接收一个参数,该参数是从1970年1月1日起的毫秒数.Date(100000) 返回1970年+毫秒数 /*java-er.comlearn java is so easy/import java.util.Date;public class Test {public static void main(String[] args){Date date = new Date();System.out.pri

java工具类–自动将数据库表生成javabean

最近和数据库的表打交道挺多的,因为暂时做的是接口活. 在这过程中发现要把表转换成对应的javabean类型,字段少的表还行,如果不小心碰到几十个字段的他妈的写起来就有点麻烦了,万一碰到几百个的呢,那不是要崩溃. 于是想写个工具类,自动生成javabean. 先说下思路: 1.读取数据库表,获取里面的字段名. 准备连接数据库的驱动包,这里只是针对了oracle数据库和mysql数据库 2.构建一个stringBuffer字符串,用来生成我们需要的类. 3.写入文件 要求具备相应的文件流知识. 好了

关于java日期类Date,DateFormat,SimpleDateFormat,Calendar总结

                      Date,DateFormat,SimpleDateFormat,Calendar                                      1.Date类: 在java.util包下,类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的相应方法已废弃.所以Date主要用来生成时间(是网上见解,

java日期类小总结

平时开发过程中肯定是要跟日期打交道的,基本上是任何系统都离不开日期,所以我来总结一下                     Date,DateFormat,SimpleDateFormat,Calendar                                      Date类: 在java.util包下,类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字

xml字符串和java实体类相互转换JaxbXmlUtil工具类 附java实体类生成soap接口报文案例

JaxbXmlUtil工具类 package com.aiait.ivs.util; import java.io.StringReader; import java.io.StringWriter; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; /** * Jaxb工具类 xml和java类相互转换 * * @author sunj