Example usage for java.time.format DateTimeFormatter ISO_DATE_TIME

List of usage examples for java.time.format DateTimeFormatter ISO_DATE_TIME

Introduction

In this page you can find the example usage for java.time.format DateTimeFormatter ISO_DATE_TIME.

Prototype

DateTimeFormatter ISO_DATE_TIME

To view the source code for java.time.format DateTimeFormatter ISO_DATE_TIME.

Click Source Link

Document

The ISO-like date-time formatter that formats or parses a date-time with the offset and zone if available, such as '2011-12-03T10:15:30', '2011-12-03T10:15:30+01:00' or '2011-12-03T10:15:30+01:00[Europe/Paris]'.

Usage

From source file:com.esri.geoportal.harvester.ckan.CkanBroker.java

/**
 * Parses ISO date/* ww  w . j av  a  2s  . c o m*/
 *
 * @param strDate ISO date as string
 * @return date object or <code>null</code> if unable to parse date
 */
private Date parseIsoDate(String strDate) {
    try {
        return Date.from(ZonedDateTime.from(DateTimeFormatter.ISO_DATE_TIME.parse(strDate)).toInstant());
    } catch (Exception ex) {
        return null;
    }
}

From source file:com.esri.geoportal.commons.csw.client.impl.Client.java

/**
 * Parses ISO date//  w ww .  j  a  va2s .co  m
 *
 * @param strDate ISO date as string
 * @return date object or <code>null</code> if unable to parse date
 */
private static Date parseIsoDate(String strDate) {
    try {
        return Date.from(ZonedDateTime.from(DateTimeFormatter.ISO_DATE_TIME.parse(strDate)).toInstant());
    } catch (Exception ex) {
        return null;
    }
}

From source file:org.apache.drill.exec.store.solr.SolrRecordReader.java

private void processRecord(ValueVector vv, Object fieldValue, int recordCounter) {
    String fieldValueStr = null;//from  w w w  . ja va 2  s  . c o m
    byte[] record = null;
    try {
        fieldValueStr = fieldValue.toString();
        record = fieldValueStr.getBytes(Charsets.UTF_8);

        if (vv.getClass().equals(NullableVarCharVector.class)) {
            NullableVarCharVector v = (NullableVarCharVector) vv;
            v.getMutator().setSafe(recordCounter, record, 0, record.length);
            v.getMutator().setValueLengthSafe(recordCounter, record.length);
        } else if (vv.getClass().equals(NullableBigIntVector.class)) {
            NullableBigIntVector v = (NullableBigIntVector) vv;
            BigDecimal bd = new BigDecimal(fieldValueStr);
            v.getMutator().setSafe(recordCounter, bd.longValue());
        } else if (vv.getClass().equals(NullableIntVector.class)) {
            NullableIntVector v = (NullableIntVector) vv;
            v.getMutator().setSafe(recordCounter, Integer.parseInt(fieldValueStr));
        } else if (vv.getClass().equals(NullableFloat8Vector.class)) {
            NullableFloat8Vector v = (NullableFloat8Vector) vv;
            Double d = Double.parseDouble(fieldValueStr);
            v.getMutator().setSafe(recordCounter, d);
        } else if (vv.getClass().equals(DateVector.class)) {
            DateVector v = (DateVector) vv;
            long dtime = 0L;
            try {
                TemporalAccessor accessor = SolrRecordReader.timeFormatter.parse(fieldValueStr);
                Date date = Date.from(Instant.from(accessor));
                dtime = date.getTime();
            } catch (Exception e) {
                SimpleDateFormat dateParser = new SimpleDateFormat(SolrRecordReader.defaultDateFormat);
                dtime = dateParser.parse(fieldValueStr).getTime();
            }

            v.getMutator().setSafe(recordCounter, dtime);
        } else if (vv.getClass().equals(NullableTimeStampVector.class)) {
            NullableTimeStampVector v = (NullableTimeStampVector) vv;
            DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_DATE_TIME;
            long dtime = 0L;

            try {
                TemporalAccessor accessor = timeFormatter.parse(fieldValueStr);
                Date date = Date.from(Instant.from(accessor));
                dtime = date.getTime();
            } catch (Exception e) {
                SimpleDateFormat dateParser = new SimpleDateFormat(SolrRecordReader.defaultDateFormat);
                dtime = dateParser.parse(fieldValueStr).getTime();
            }
            v.getMutator().setSafe(recordCounter, dtime);
        }
    } catch (Exception e) {
        SolrRecordReader.logger.error("Error processing record: " + e.getMessage() + vv.getField().getPath()
                + " Field type " + vv.getField().getType() + " " + vv.getClass());
    }
}

From source file:org.tightblog.ui.restapi.WeblogEntryController.java

@PostMapping(value = "/{weblogId}/entries")
public ResponseEntity postEntry(@PathVariable String weblogId, @Valid @RequestBody WeblogEntry entryData,
        Locale locale, Principal p) throws ServletException {

    try {//from   w w w . j  av a  2s.  c o  m

        boolean createNew = false;
        WeblogEntry entry = null;

        if (entryData.getId() != null) {
            entry = weblogEntryRepository.findByIdOrNull(entryData.getId());
        }

        // Check user permissions
        User user = userRepository.findEnabledByUserName(p.getName());
        Weblog weblog = (entry == null) ? weblogRepository.findById(weblogId).orElse(null) : entry.getWeblog();

        WeblogRole necessaryRole = (PubStatus.PENDING.equals(entryData.getStatus())
                || PubStatus.DRAFT.equals(entryData.getStatus())) ? WeblogRole.EDIT_DRAFT : WeblogRole.POST;
        if (weblog != null && userManager.checkWeblogRole(user, weblog, necessaryRole)) {

            // create new?
            if (entry == null) {
                createNew = true;
                entry = new WeblogEntry();
                entry.setCreator(user);
                entry.setWeblog(weblog);
                entry.setEditFormat(entryData.getEditFormat());
                entryData.setWeblog(weblog);
            }

            entry.setUpdateTime(Instant.now());
            Instant pubTime = calculatePubTime(entryData);
            entry.setPubTime((pubTime != null) ? pubTime : entry.getUpdateTime());

            if (PubStatus.PUBLISHED.equals(entryData.getStatus())
                    && entry.getPubTime().isAfter(Instant.now().plus(1, ChronoUnit.MINUTES))) {
                entryData.setStatus(PubStatus.SCHEDULED);
            }

            entry.setStatus(entryData.getStatus());
            entry.setTitle(entryData.getTitle());
            entry.setText(entryData.getText());
            entry.setSummary(entryData.getSummary());
            entry.setNotes(entryData.getNotes());
            if (!StringUtils.isEmpty(entryData.getTagsAsString())) {
                entry.updateTags(
                        new HashSet<>(Arrays.asList(entryData.getTagsAsString().trim().split("\\s+"))));
            } else {
                entry.updateTags(new HashSet<>());
            }
            entry.setSearchDescription(entryData.getSearchDescription());
            entry.setEnclosureUrl(entryData.getEnclosureUrl());
            WeblogCategory category = weblogCategoryRepository.findById(entryData.getCategory().getId())
                    .orElse(null);
            if (category != null) {
                entry.setCategory(category);
            } else {
                throw new IllegalArgumentException("Category is invalid.");
            }

            entry.setCommentDays(entryData.getCommentDays());

            if (!StringUtils.isEmpty(entry.getEnclosureUrl())) {
                // Fetch MediaCast resource
                log.debug("Checking MediaCast attributes");
                AtomEnclosure enclosure;

                try {
                    enclosure = weblogEntryManager.generateEnclosure(entry.getEnclosureUrl());
                } catch (IllegalArgumentException e) {
                    BindException be = new BindException(entry, "new data object");
                    be.addError(new ObjectError("Enclosure URL",
                            messages.getMessage(e.getMessage(), null, locale)));
                    return ResponseEntity.badRequest().body(ValidationError.fromBindingErrors(be));
                }

                // set enclosure attributes
                entry.setEnclosureUrl(enclosure.getUrl());
                entry.setEnclosureType(enclosure.getContentType());
                entry.setEnclosureLength(enclosure.getLength());
            }

            weblogEntryManager.saveWeblogEntry(entry);
            dp.updateLastSitewideChange();

            // notify search of the new entry
            if (entry.isPublished()) {
                luceneIndexer.updateIndex(entry, false);
            } else if (!createNew) {
                luceneIndexer.updateIndex(entry, true);
            }

            if (PubStatus.PENDING.equals(entry.getStatus())) {
                emailService.sendPendingEntryNotice(entry);
            }

            SuccessfulSaveResponse ssr = new SuccessfulSaveResponse();
            ssr.entryId = entry.getId();

            switch (entry.getStatus()) {
            case DRAFT:
                ssr.message = messages.getMessage("entryEdit.draftSaved", null, locale);
                break;
            case PUBLISHED:
                ssr.message = messages.getMessage("entryEdit.publishedEntry", null, locale);
                break;
            case SCHEDULED:
                ssr.message = messages.getMessage(
                        "entryEdit.scheduledEntry", new Object[] { DateTimeFormatter.ISO_DATE_TIME
                                .withZone(entry.getWeblog().getZoneId()).format(entry.getPubTime()) },
                        null, locale);
                break;
            case PENDING:
                ssr.message = messages.getMessage("entryEdit.submittedForReview", null, locale);
                break;
            default:
            }

            return ResponseEntity.ok(ssr);
        } else {
            return ResponseEntity.status(403).body(messages.getMessage("error.title.403", null, locale));
        }
    } catch (Exception e) {
        throw new ServletException(e.getMessage());
    }
}