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 ParseLocalizedTime extends ColumnFixture{ public String source; public String style; public String language; public String country; TimePoint time=null; Calendar cal=null; private InternalizationContext internalizationContext = null; public ParseLocalizedTime(){ internalizationContext = UserRequestManager.getInstance().getApplicationContext().getInternalizationContext(); cal=Calendar.getInstance(); } private void parseSource(){ String[] styles=style.split(","); if (styles.length > 1) { time=internalizationContext.findLocaleByLanguageAndCountry(language, country).getDateFormat().parse(source,getStyle(styles[0]),getStyle(styles[1])); }else{ time=internalizationContext.findLocaleByLanguageAndCountry(language, country).getDateFormat().parse(source,getStyle(styles[0])); } cal.setTime(time.getValue()); cal.setLenient(false); }; public int timevalue3() { parseSource(); return cal.get(Calendar.DAY_OF_MONTH); } public int timevalue2() { parseSource(); return cal.get(Calendar.MONTH)+1; // Zero-based Months! } public int timevalue1() { 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; } }