Use the java date class to generate a data warehouse dimension table
Use the java date class to generate a data warehouse dimension table
Date class:
Returns the number of milliseconds of a relative date. Accurate to milliseconds, but does not support date internationalization and Time Zone display. The Date class evolved from the Java Development Kit (JDK) 1.0. At that time, it only contained several methods for obtaining or setting each part of a Date data, such as months, days, and years. These methods have now been criticized and moved to the Calendar class, an improvement designed to better process the international format of date data.
Calender class:
A more powerful time class than Date is an abstract class that provides regular Date modification and international support.
GregorianCalendar class:
A date processing method is provided for date calculation. It is a subclass of the Calendar class and a useful method for determining a leap year.
DateFormat class:
Supports string input and output, and supports formatting date/time information.
SimpleDateFormat class:
More powerful Date and Time formatting class, custom format date and time.
Java. util. Locale class:
Describe a specific geographic, political, and cultural region. The Locale object mainly encapsulates "region" and "language type.
The following code is used to generate some field values of the date dimension table:
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)); }}