protected Calendar readCalendar(String calendarAttribValue) { if (calendarAttribValue == null) { return Calendar.getDefault(); } Calendar calendar = Calendar.get(calendarAttribValue); if (calendar == null) { errlog.format(" ** Parse error: Bad calendar name = '%s'%n", calendarAttribValue); logger.debug(" ** Parse error: Bad calendar name = '{}}'", calendarAttribValue); return Calendar.getDefault(); } return calendar; }
public static boolean isDefaultChronology(Calendar cal) { return cal == null || cal.equals(getDefault()) || cal.equals(Calendar.none) ; }
public static CalendarDate withDoy(Calendar cal, int year, int doy, int hourOfDay, int minuteOfHour, int secondOfMinute) { Chronology base = Calendar.getChronology(cal); /* if (base == null) base = ISOChronology.getInstanceUTC(); // already in UTC else base = ZonedChronology.getInstance( base, DateTimeZone.UTC); // otherwise wrap it to be in UTC */ DateTime dt = new DateTime(year, 1, 1, hourOfDay, minuteOfHour, secondOfMinute, base); dt = dt.withZone(DateTimeZone.UTC); dt = dt.withDayOfYear(doy); if (!Calendar.isDefaultChronology(cal)) dt = dt.withChronology(Calendar.getChronology(cal)); return new CalendarDate(cal, dt); }
public static CalendarDate parseISOformatOld(String calendarName, String isoDateString) { // Date date = CalendarDateFormatter.parseISODate(isoDateString); java.util.Date date = CalendarDateFormatter.isoStringToDate(isoDateString); Calendar cal = Calendar.get(calendarName); Chronology chronology = Calendar.getChronology(cal); DateTime dt = new DateTime(date, chronology); return new CalendarDate(cal, dt); }
public void writeHeader(PointFeature pf) throws IOException { List<VariableSimpleIF> coords = new ArrayList<>(); coords.add(VariableSimpleImpl.makeScalar(timeName, "time of measurement", timeUnit.getUdUnit(), DataType.DOUBLE) .add(new Attribute(CF.CALENDAR, timeUnit.getCalendar().toString()))); coords.add(VariableSimpleImpl.makeScalar(latName, "latitude of measurement", CDM.LAT_UNITS, DataType.DOUBLE)); coords.add(VariableSimpleImpl.makeScalar(lonName, "longitude of measurement", CDM.LON_UNITS, DataType.DOUBLE)); Formatter coordNames = new Formatter().format("%s %s %s", timeName, latName, lonName); if (altUnits != null) { coords.add( VariableSimpleImpl.makeScalar(altName, "altitude of measurement", altUnits, DataType.DOUBLE) .add(new Attribute(CF.POSITIVE, CF1Convention.getZisPositive(altName, altUnits)))); coordNames.format(" %s", altName); } super.writeHeader(coords, null, pf.getDataAll(), coordNames.toString()); }
CalendarDate(Calendar cal, DateTime dateTime) { this.cal = cal == null ? Calendar.getDefault() : cal; this.dateTime = dateTime; }
public static ucar.nc2.time.Calendar getCalendarFromAttribute(AttributeContainer atts) { String cal = atts.findAttValueIgnoreCase(CF.CALENDAR, null); if (cal == null) return null; return ucar.nc2.time.Calendar.get(cal); }
Calendar cal = Calendar.get(tca.findAttributeIgnoreCase(CF.CALENDAR).getStringValue()); expected = defaultCFCalendar.toString(); found = cal.toString(); testCond = found.equals(expected); failMessage = format("The calendar should equal %s, but got %s instead. Failed to set a default calendar.", expected, found); CalendarDate correctDate = CalendarDate.parseISOformat(defaultCFCalendar.toString(), correctIsoDateTimeString);
/** * Create CalendarDate from msecs since epoch * Uses the given Calendar. * @param cal calendar to use, or null for default * @param msecs milliseconds from 1970-01-01T00:00:00Z * @return CalendarDate in UTC time zone. */ public static CalendarDate of(Calendar cal, long msecs) { Chronology base = Calendar.getChronology(cal); DateTime dt = new DateTime(msecs, base) ; return new CalendarDate(cal, dt); }
if( cal2 == null) cal2 = ucar.nc2.time.Calendar.getDefault(); String calName = (cal2 == null) ? null : cal2.name(); if (text.indexOf("since") > 0) { date = CalendarDate.parseUdunits(calName, text);
@Override public int hashCode() { int result = 17; if (cal != null) result += 37 * result + cal.hashCode(); result += 37 * result + dateTime.hashCode(); return result; }
private VariableDS makeOffsetCoordinate(NetcdfDataset result, Group group, String dimName, CalendarDate base, double[] values) { DataType dtype = DataType.DOUBLE; VariableDS timeVar = new VariableDS(result, group, null, dimName+"_offset", dtype, dimName, null, null); // LOOK could just make a CoordinateAxis1D timeVar.addAttribute(new Attribute(CDM.LONG_NAME, "offset hour from start of run for coordinate = " + dimName)); timeVar.addAttribute(new ucar.nc2.Attribute("standard_name", "forecast_period")); timeVar.addAttribute(new ucar.nc2.Attribute(CF.CALENDAR, base.getCalendar().name() )); timeVar.addAttribute(new ucar.nc2.Attribute(CDM.UNITS, "hours since " + base)); timeVar.addAttribute(new ucar.nc2.Attribute(CDM.MISSING_VALUE, Double.NaN)); // construct the values int ntimes = values.length; ArrayDouble.D1 timeCoordVals = (ArrayDouble.D1) Array.factory( DataType.DOUBLE, new int[] {ntimes}, values); timeVar.setCachedData(timeCoordVals); group.addVariable(timeVar); return timeVar; }
private CalendarDateRange(CalendarDate start, CalendarDate end) { this.start = start; this.end = end; this.startDt = start.getDateTime(); this.endDt = end.getDateTime(); this.cal = start.getCalendar(); assert this.cal.equals(end.getCalendar()); }
Calendar useCal = Calendar.of(dt.getChronology()); return new CalendarDate(useCal, dt);
private void writeHeader(TrajectoryFeature feature, PointFeature obs) throws IOException { // obs data List<VariableSimpleIF> coords = new ArrayList<>(); coords.add(VariableSimpleImpl.makeScalar(timeName, "time of measurement", timeUnit.getUdUnit(), DataType.DOUBLE) .add(new Attribute(CF.CALENDAR, timeUnit.getCalendar().toString()))); coords.add(VariableSimpleImpl.makeScalar(latName, "latitude of measurement", CDM.LAT_UNITS, DataType.DOUBLE)); coords.add(VariableSimpleImpl.makeScalar(lonName, "longitude of measurement", CDM.LON_UNITS, DataType.DOUBLE)); Formatter coordNames = new Formatter().format("%s %s %s", timeName, latName, lonName); if (altUnits != null) { coords.add( VariableSimpleImpl.makeScalar(altName, "altitude of measurement", altUnits, DataType.DOUBLE) .add(new Attribute(CF.POSITIVE, CF1Convention.getZisPositive(altName, altUnits)))); coordNames.format(" %s", altName); } super.writeHeader(coords, feature.getFeatureData(), obs.getFeatureData(), coordNames.toString()); }
CalendarDate(Calendar cal, DateTime dateTime) { this.cal = cal == null ? Calendar.getDefault() : cal; this.dateTime = dateTime; }
public CalendarDate parse(String timeString) { DateTime dt = dflocal.parseDateTime(timeString); Calendar cal = Calendar.get(dt.getChronology().toString()); return new CalendarDate(cal, dt); }
Calendar cal = Calendar.get(tca.findAttributeIgnoreCase(CF.CALENDAR).getStringValue()); found = cal.toString(); expected = defaultCoardsCalendar.toString(); testCond = found.equals(expected); failMessage = format("The calendar should equal %s, but got %s instead. Failed to add a default calendar.", expected, found); CalendarDate correctDate = CalendarDate.parseISOformat(defaultCoardsCalendar.toString(), correctIsoDateTimeString);
public static CalendarDate parseISOformatOld(String calendarName, String isoDateString) { // Date date = CalendarDateFormatter.parseISODate(isoDateString); java.util.Date date = CalendarDateFormatter.isoStringToDate(isoDateString); Calendar cal = Calendar.get(calendarName); Chronology chronology = Calendar.getChronology(cal); DateTime dt = new DateTime(date, chronology); return new CalendarDate(cal, dt); }
/** * Create CalendarDate from msecs since epoch * Uses the given Calendar. * @param cal calendar to use, or null for default * @param msecs milliseconds from 1970-01-01T00:00:00Z * @return CalendarDate in UTC time zone. */ public static CalendarDate of(Calendar cal, long msecs) { Chronology base = Calendar.getChronology(cal); DateTime dt = new DateTime(msecs, base) ; return new CalendarDate(cal, dt); }