org.joda.time.format.DateTimeFormatter Scala Examples
The following examples show how to use org.joda.time.format.DateTimeFormatter.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: DateTimeTools.scala From pertax-frontend with Apache License 2.0 | 9 votes |
package util import com.google.inject.{Inject, Singleton} import org.joda.time.format.{DateTimeFormat, DateTimeFormatter} import org.joda.time.{DateTime, _} import play.api.Logger import uk.gov.hmrc.time.CurrentTaxYear import scala.util.{Failure, Success, Try} import java.time.{LocalDateTime => JavaLDT} object DateTimeTools extends CurrentTaxYear { //Timezone causing problem on dev server val defaultTZ = DateTimeZone.forID("Europe/London") val unixDateFormat = "yyyy-MM-dd" val unixDateTimeFormat = "yyyy-MM-dd'T'HH:mm:ss" val humanDateFormat = "dd MMMMM yyyy" //Returns for example 1516 in March 2016 def previousAndCurrentTaxYear = previousAndCurrentTaxYearFromGivenYear(current.currentYear) def previousAndCurrentTaxYearFromGivenYear(year: Int) = { def y = year (y - 1).toString.takeRight(2) + (y).toString.takeRight(2) } private def formatter(pattern: String): DateTimeFormatter = DateTimeFormat.forPattern(pattern).withZone(defaultTZ) def short(dateTime: LocalDate) = formatter("dd/MM/yyy").print(dateTime) def asHumanDateFromUnixDate(unixDate: String): String = Try(DateTimeFormat.forPattern(humanDateFormat).print(DateTime.parse(unixDate))) match { case Success(v) => v case Failure(e) => { Logger.warn("Invalid date parse in DateTimeTools.asHumanDateFromUnixDate: " + e) unixDate } } def toPaymentDate(dateTime: JavaLDT): LocalDate = new LocalDate(dateTime.getYear, dateTime.getMonthValue, dateTime.getDayOfMonth) override def now: () => DateTime = DateTime.now } @Singleton class DateTimeTools @Inject()() { def showSendTaxReturnByPost = { val start = new DateTime(s"${DateTime.now().getYear}-11-01T00:00:00Z") val end = new DateTime(s"${DateTime.now().getYear + 1}-01-31T23:59:59Z") !DateTime.now().isAfter(start) && DateTime.now().isBefore(end) } }
Example 2
Source File: WarcHeaders.scala From ArchiveSpark with MIT License | 6 votes |
package org.archive.archivespark.sparkling.warc import java.nio.charset.Charset import java.util.UUID import org.archive.archivespark.sparkling.Sparkling import org.archive.archivespark.sparkling.util.DigestUtil import org.joda.time.Instant import org.joda.time.format.{DateTimeFormat, DateTimeFormatter, ISODateTimeFormat} object WarcHeaders { val UTF8: Charset = Charset.forName(Sparkling.DefaultCharset) val ArcDateTimeFormat: DateTimeFormatter = DateTimeFormat.forPattern("yyyyMMddHHmmss").withZoneUTC val WarcDateTimeFormat: DateTimeFormatter = ISODateTimeFormat.dateTimeNoMillis val Br = "\r\n" def arcFile(info: WarcFileMeta, filename: String): Array[Byte] = { val header = StringBuilder.newBuilder header.append("filedesc://") header.append(filename) header.append(" 0.0.0.0 ") header.append(ArcDateTimeFormat.print(info.created)) header.append(" text/plain ") val headerBody = StringBuilder.newBuilder // Internet Archive: Name of gathering organization with no white space (http://archive.org/web/researcher/ArcFileFormat.php) headerBody.append("1 0 " + info.publisher.replace(" ", "")).append(Br) headerBody.append("URL IP-address Archive-date Content-type Archive-length").append(Br) val headerBodyStr: String = headerBody.toString val headerBodyBlob: Array[Byte] = headerBodyStr.getBytes(UTF8) header.append(headerBodyBlob.length).append(Br) header.append(headerBodyStr).append(Br) header.toString().getBytes(UTF8) } def warcFile(meta: WarcFileMeta, filename: String): Array[Byte] = { val header = StringBuilder.newBuilder header.append("WARC/1.0").append(Br) header.append("WARC-Type: warcinfo").append(Br) header.append("WARC-Date: " + WarcDateTimeFormat.print(Instant.now)).append(Br) header.append("WARC-Filename: " + filename).append(Br) header.append("WARC-Record-ID: " + newRecordID()).append(Br) header.append("Content-Type: application/warc-fields").append(Br) val headerBody = StringBuilder.newBuilder headerBody.append("software: " + meta.software).append(Br) headerBody.append("format: WARC File Format 1.0").append(Br) headerBody.append("conformsTo: http://bibnum.bnf.fr/WARC/WARC_ISO_28500_version1_latestdraft.pdf").append(Br) headerBody.append("publisher: " + meta.publisher).append(Br) headerBody.append("created: " + WarcDateTimeFormat.print(meta.created)).append(Br) headerBody.append(Br * 3) val headerBodyStr = headerBody.toString() val headerBodyBlob = headerBodyStr.getBytes(UTF8) header.append("Content-Length: " + headerBodyBlob.length).append(Br) header.append(Br) header.append(headerBodyStr) header.toString().getBytes(UTF8) } def warcResponseRecord(meta: WarcRecordMeta, content: Array[Byte], payload: Array[Byte]): Array[Byte] = { val header = StringBuilder.newBuilder header.append("WARC/1.0").append(Br) header.append("WARC-Type: response").append(Br) header.append("WARC-Target-URI: " + meta.url).append(Br) header.append("WARC-Date: " + WarcDateTimeFormat.print(meta.timestamp)).append(Br) header.append("WARC-Payload-Digest: sha1:" + DigestUtil.sha1Base32(payload)).append(Br) if (meta.ip.isDefined) header.append("WARC-IP-Address: " + meta.ip.get).append(Br) header.append("WARC-Record-ID: " + meta.recordId.getOrElse(newRecordID())).append(Br) header.append("Content-Type: application/http; msgtype=response").append(Br) header.append("Content-Length: " + content.length).append(Br) header.append(Br) header.toString().getBytes(UTF8) } def http(statusLine: String, headers: Map[String, String]): Array[Byte] = { val header = StringBuilder.newBuilder header.append(statusLine).append(Br) for ((key, value) <- headers) { header.append(s"$key: $value").append(Br) } header.append(Br) header.toString().getBytes(UTF8) } private def newRecordID(): String = "<urn:uuid:" + UUID.randomUUID() + ">" }
Example 3
Source File: Time14Util.scala From ArchiveSpark with MIT License | 5 votes |
package org.archive.archivespark.sparkling.util import org.joda.time.DateTime import org.joda.time.format.{DateTimeFormat, DateTimeFormatter} import scala.util.Try object Time14Util { val TimestampFill: String = "20000101000000" val TimestampFormat: DateTimeFormatter = DateTimeFormat.forPattern("yyyyMMddHHmmss").withZoneUTC def fix(timestamp: String): String = { val fill = TimestampFill val length = fill.length if (timestamp.length < length) timestamp + fill.takeRight(length - timestamp.length) else timestamp } def parse(timestamp: String, fix: Boolean = true): DateTime = TimestampFormat.parseDateTime(if (fix) this.fix(timestamp) else timestamp) def validate(timestamp: String): Option[String] = { val fixed = fix(timestamp) if (Try(parse(fixed, fix = false)).isSuccess) Some(fixed) else None } }
Example 4
Source File: TimeFormat.scala From flint with Apache License 2.0 | 5 votes |
package com.twosigma.flint.timeseries.time import java.util.concurrent.TimeUnit import org.joda.time.format.{ DateTimeFormat, DateTimeFormatter, ISODateTimeFormat } import org.joda.time.{ DateTime, DateTimeZone } import scala.concurrent.duration.TimeUnit import scala.util.Try object TimeFormat { protected[flint] def parseNano(text: String, timeZone: DateTimeZone = DateTimeZone.UTC): Long = parse(text, timeZone, timeUnit = TimeUnit.NANOSECONDS) private val formatters: List[DateTimeFormatter] = List( // Double `HH` formatter DateTimeFormat.forPattern("yyyyMMdd HH:mm:ss.SSS Z"), DateTimeFormat.forPattern("yyyyMMdd HH:mm:ss Z"), DateTimeFormat.forPattern("yyyyMMdd HH:mm Z"), DateTimeFormat.forPattern("yyyyMMdd HH:mm:ss.SSS"), DateTimeFormat.forPattern("yyyyMMdd HH:mm:ss"), DateTimeFormat.forPattern("yyyyMMdd HH:mm"), DateTimeFormat.forPattern("yyyyMMdd"), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS Z"), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss Z"), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm Z"), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS"), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm"), DateTimeFormat.forPattern("yyyy-MM-dd"), // Single `H` formatter DateTimeFormat.forPattern("yyyyMMdd H:mm:ss.SSS"), DateTimeFormat.forPattern("yyyyMMdd H:mm:ss.SSS Z"), DateTimeFormat.forPattern("yyyy-MM-dd H:mm:ss.SSS"), DateTimeFormat.forPattern("yyyy-MM-dd H:mm:ss.SSS Z"), // ISO DateTime ISODateTimeFormat.dateTimeParser() ) }
Example 5
Source File: ClickhouseJsonSupport.scala From clickhouse-scala-client with GNU Lesser General Public License v3.0 | 5 votes |
package com.crobox.clickhouse.dsl.marshalling import com.crobox.clickhouse.time.IntervalStart import org.joda.time.format.{DateTimeFormatter, DateTimeFormatterBuilder, ISODateTimeFormat} import org.joda.time.{DateTime, DateTimeZone} import spray.json.{JsNumber, JsString, JsValue, JsonFormat, deserializationError, _} import scala.util.Try trait ClickhouseJsonSupport { override def read(json: JsValue): IntervalStart = json match { case JsString(value) => value match { case month(relativeMonth, timezoneId) => new DateTime(UnixStartTimeWithoutTimeZone) .withZoneRetainFields(DateTimeZone.forID(timezoneId)) .plusMonths(relativeMonth.toInt - RelativeMonthsSinceUnixStart) .withZone(DateTimeZone.UTC) case date(dateOnly, timezoneId) => //should handle quarter and year grouping as it returns a date formatter .parseDateTime(dateOnly) .withZoneRetainFields(DateTimeZone.forID(timezoneId)) .withZone(DateTimeZone.UTC) case msTimestamp(millis) => new DateTime(millis.toLong, DateTimeZone.UTC) case timestamp(secs) => new DateTime(secs.toLong * 1000, DateTimeZone.UTC) case _ => // sometimes clickhouse mistakenly returns a long / int value as JsString. Therefor, first try to // parse it as a long... val dateTime = Try { new DateTime(value.toLong, DateTimeZone.UTC) }.toOption // continue with parsing using the formatter dateTime.getOrElse { try { formatter.parseDateTime(value) } catch { case _: IllegalArgumentException => error(s"Couldn't parse $value into valid date time") case _: UnsupportedOperationException => error("Unsupported operation, programmatic misconfiguration?") } } } case JsNumber(millis) => new DateTime(millis.longValue, DateTimeZone.UTC) case _ => throw DeserializationException(s"Unknown date format read from clickhouse for $json") } def error(v: Any): DateTime = { val example = readFormatter.print(0) deserializationError( f"'$v' is not a valid date value. Dates must be in compact ISO-8601 format, e.g. '$example'" ) } } } object ClickhouseJsonSupport extends DefaultJsonProtocol with ClickhouseJsonSupport
Example 6
Source File: Generator.scala From donut with MIT License | 5 votes |
package report.donut import org.apache.commons.lang3.StringUtils import org.joda.time.DateTime import org.joda.time.format.{DateTimeFormat, DateTimeFormatter} import report.donut.gherkin.model._ import report.donut.log.Log import report.donut.performance.PerformanceSupport import report.donut.template.TemplateEngine import report.donut.transformers.cucumber.{CucumberTransformer, Feature => CucumberFeature} import scala.collection.mutable.ListBuffer import scala.util.Try object Generator extends Log with PerformanceSupport { val formatter: DateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd-HHmm") //this wrapper is currently used to help the java maven plugin def apply(resultSources: String, outputPath: String = "donut", filePrefix: String = "", dateTime: String, template: String = "default", countSkippedAsFailure: Boolean = false, countPendingAsFailure: Boolean = false, countUndefinedAsFailure: Boolean = false, countMissingAsFailure: Boolean = false, projectName: String, projectVersion: String, customAttributes: scala.collection.mutable.Map[String, String]): ReportConsole = { createReport(resultSources, outputPath, filePrefix, dateTime, template, countSkippedAsFailure, countPendingAsFailure, countUndefinedAsFailure, countMissingAsFailure, projectName, projectVersion, customAttributes.toMap) match { case Right(report) => ReportConsole(report) case Left(error) => throw DonutException(s"An error occurred while generating donut report. $error") } } private[donut] def createReport(resultSources: String, outputPath: String = "donut", filePrefix: String = "", datetime: String = formatter.print(DateTime.now), template: String = "default", countSkippedAsFailure: Boolean = false, countPendingAsFailure: Boolean = false, countUndefinedAsFailure: Boolean = false, countMissingAsFailure: Boolean = false, projectName: String, projectVersion: String, customAttributes: Map[String, String] = Map()): Either[String, Report] = { //Prepare objects val statusConf = StatusConfiguration(countSkippedAsFailure, countPendingAsFailure, countUndefinedAsFailure, countMissingAsFailure) val projectMetadata = ProjectMetadata(projectName, projectVersion, customAttributes) val reportStartedTimestamp = Try(formatter.parseDateTime(datetime)).getOrElse(DateTime.now) for { resultSourceList <- if (!StringUtils.isBlank(resultSources)) Right(resultSources.split(",").map(_.trim).toList).right else Left("Unable to extract the paths to the result sources. Please use this format:- cucumber:/my/path/cucumber-reports,cucumber:/my/other/path/adapted-reports").right features <- timed("step1", "Loaded result sources") { loadResultSources(resultSourceList, statusConf).right } report <- timed("step2", "Produced report") { Right(Report(features, reportStartedTimestamp, projectMetadata)).right } _ <- TemplateEngine(report, s"/templates/$template/index.html").renderToHTML(outputPath, filePrefix).right } yield report } def loadResultSources(resultSourceList: List[String], statusConf: StatusConfiguration): Either[String, List[Feature]] = { var features = new ListBuffer[CucumberFeature] for (resultSource <- resultSourceList) { val result = ResultLoader(resultSource).load if (result.isLeft) return Left(result.left.get) features ++= result.right.get } val donutFeatures = CucumberTransformer.transform(features.toList, statusConf).right.get Try(donutFeatures.toList).toEither(_.getMessage) } } case class DonutException(mgs: String) extends Exception
Example 7
Source File: package.scala From pureconfig with Mozilla Public License 2.0 | 5 votes |
package pureconfig.module import org.joda.time.{ DateTimeZone, Duration, Instant, Interval } import org.joda.time.format.{ DateTimeFormat, DateTimeFormatter } import pureconfig.{ ConfigConvert, ConfigReader } import pureconfig.ConfigConvert.{ catchReadError, viaNonEmptyString } package object joda { implicit def instantConfigConvert: ConfigConvert[Instant] = ConfigConvert[Long].xmap(new Instant(_), _.getMillis) implicit def intervalConfigConvert: ConfigConvert[Interval] = viaNonEmptyString[Interval]( catchReadError(Interval.parseWithOffset), _.toString) implicit def durationConfigConvert: ConfigConvert[Duration] = viaNonEmptyString[Duration]( catchReadError(Duration.parse), _.toString) implicit def dateTimeFormatterConfigConvert: ConfigReader[DateTimeFormatter] = ConfigReader.fromNonEmptyString[DateTimeFormatter]( catchReadError(DateTimeFormat.forPattern)) implicit def dateTimeZoneConfigConvert: ConfigConvert[DateTimeZone] = viaNonEmptyString[DateTimeZone]( catchReadError(DateTimeZone.forID), _.getID) }
Example 8
Source File: DateTimeConverter.scala From seahorse with Apache License 2.0 | 5 votes |
package ai.deepsense.commons.datetime import java.sql.Timestamp import org.joda.time.format.{DateTimeFormatter, ISODateTimeFormat} import org.joda.time.{DateTime, DateTimeZone} trait DateTimeConverter { val zone: DateTimeZone = DateTimeZone.getDefault val dateTimeFormatter: DateTimeFormatter = ISODateTimeFormat.dateTime() def toString(dateTime: DateTime): String = dateTime.toString(dateTimeFormatter) def parseDateTime(s: String): DateTime = dateTimeFormatter.parseDateTime(s).withZone(zone) def parseTimestamp(s: String): Timestamp = new Timestamp(parseDateTime(s).getMillis) def now: DateTime = new DateTime(zone) def fromMillis(millis: Long): DateTime = new DateTime(zone).withMillis(millis) def dateTime( year: Int, monthOfyear: Int, dayOfMonth: Int, hourOfDay: Int = 0, minutesOfHour: Int = 0, secondsOfMinute: Int = 0): DateTime = new DateTime(year, monthOfyear, dayOfMonth, hourOfDay, minutesOfHour, secondsOfMinute, zone) def dateTimeFromUTC( year: Int, monthOfyear: Int, dayOfMonth: Int, hourOfDay: Int = 0, minutesOfHour: Int = 0, secondsOfMinute: Int = 0): DateTime = new DateTime( year, monthOfyear, dayOfMonth, hourOfDay, minutesOfHour, secondsOfMinute, DateTimeZone.UTC).withZone(DateTimeConverter.zone) } object DateTimeConverter extends DateTimeConverter
Example 9
Source File: QueryGuardConfigs.scala From gimel with Apache License 2.0 | 5 votes |
package com.paypal.gimel.common.conf import org.joda.time.format.{DateTimeFormat, DateTimeFormatter} object QueryGuardConfigs { val JOB_TTL: String = "gimel.sql.query.guard.timeout.sec" val DELAY_TTL: String = "gimel.sql.query.guard.delay.timeout.sec" } object QueryGuardConstants { val DEFAULT_JOB_TTL: Int = 2100000 val DEFAULT_DELAY_TTL: Int = 10000 // val DEFAULT_JOB_TTL: Int = 60000 // val DEFAULT_DELAY_TTL: Int = 1000 val EXCEPTION_MSG_FORMAT: String = """Gimel Query Guard Exception : Your SQL has exceeded the maximum limit of %s. | Query Start Time : %s | Query Abort Time : %s | Please start a dedicated Spark Kernel with Gimel to run long running queries. | Please tune your SQL to pull only required data by applying right filters, this will also help minimize the runtime & process only required data from source system.""".stripMargin val LOCAL_DATETIME_FORMATTER: DateTimeFormatter = DateTimeFormat.fullDateTime() }
Example 10
Source File: DateTimeConverter.scala From seahorse-workflow-executor with Apache License 2.0 | 5 votes |
package io.deepsense.commons.datetime import java.sql.Timestamp import org.joda.time.format.{DateTimeFormatter, ISODateTimeFormat} import org.joda.time.{DateTime, DateTimeZone} trait DateTimeConverter { val zone: DateTimeZone = DateTimeZone.getDefault val dateTimeFormatter: DateTimeFormatter = ISODateTimeFormat.dateTime() def toString(dateTime: DateTime): String = dateTime.toString(dateTimeFormatter) def parseDateTime(s: String): DateTime = dateTimeFormatter.parseDateTime(s).withZone(zone) def parseTimestamp(s: String): Timestamp = new Timestamp(parseDateTime(s).getMillis) def now: DateTime = new DateTime(zone) def fromMillis(millis: Long): DateTime = new DateTime(zone).withMillis(millis) def dateTime( year: Int, monthOfyear: Int, dayOfMonth: Int, hourOfDay: Int = 0, minutesOfHour: Int = 0, secondsOfMinute: Int = 0): DateTime = new DateTime(year, monthOfyear, dayOfMonth, hourOfDay, minutesOfHour, secondsOfMinute, zone) def dateTimeFromUTC( year: Int, monthOfyear: Int, dayOfMonth: Int, hourOfDay: Int = 0, minutesOfHour: Int = 0, secondsOfMinute: Int = 0): DateTime = new DateTime( year, monthOfyear, dayOfMonth, hourOfDay, minutesOfHour, secondsOfMinute, DateTimeZone.UTC).withZone(DateTimeConverter.zone) } object DateTimeConverter extends DateTimeConverter