package com.processpuzzle.fitnesse.fundamental_types; import java.text.DateFormat; import java.util.Calendar; import com.processpuzzle.application.configuration.domain.InternalizationContext; import com.processpuzzle.fundamental_types.domain.TimePoint; import com.processpuzzle.user_session.domain.UserRequestManager; import fit.ColumnFixture; public class ParseTime extends ColumnFixture{ public String source; public String style; private InternalizationContext internalizationContext = null; TimePoint time=null; Calendar cal=null; public ParseTime(){ internalizationContext = UserRequestManager.getInstance().getApplicationContext().getInternalizationContext(); cal=Calendar.getInstance(); } private void parseSource(){ String[] styles=style.split(","); if (styles.length > 1) { time=internalizationContext.findLocaleByLanguageAndCountry("en", "US").getDateFormat().parse(source,getStyle(styles[0]),getStyle(styles[1])); }else{ time=internalizationContext.findLocaleByLanguageAndCountry("en", "US").getDateFormat().parse(source,getStyle(styles[0])); } cal.setTime(time.getValue()); }; public int hourValue(){ parseSource(); return cal.get(Calendar.HOUR_OF_DAY); } public int minValue() { parseSource(); return cal.get(Calendar.MINUTE); } public int secValue() { parseSource(); return cal.get(Calendar.SECOND); } public int msecValue() { parseSource(); return cal.get(Calendar.MILLISECOND); } public int dayValue() { parseSource(); return cal.get(Calendar.DAY_OF_MONTH); } public int monthValue() { parseSource(); return cal.get(Calendar.MONTH)+1; // Zero Based months! } public int yearValue() { parseSource(); return cal.get(Calendar.YEAR); } private int getStyle(String str){ if (str.equals("short")){ return DateFormat.SHORT; } if (str.equals("medium")){ return DateFormat.MEDIUM; } if (str.equals("long")){ return DateFormat.LONG; } if (str.equals("full")){ return DateFormat.FULL; } return 0; } }