struct Time::Format

Overview

Specifies the format to convert a Time to and from a String.

The pattern of a format is a String with directives. Directives being with a percent (%) character. Any text not listed as a directive will be passed/parsed through the output/input string.

The directives are:

  • %a: short day name (Sun, Mon, Tue, ...)
  • %^a: short day name, upcase (SUN, MON, TUE, ...)
  • %A: day name (Sunday, Monday, Tuesday, ...)
  • %^A: day name, upcase (SUNDAY, MONDAY, TUESDAY, ...)
  • %b: short month name (Jan, Feb, Mar, ...)
  • %^b: short month name, upcase (JAN, FEB, MAR, ...)
  • %B: month name (January, February, March, ...)
  • %^B: month name, upcase (JANUARY, FEBRUARY, MARCH, ...)
  • %c: date and time (Tue Apr 5 10:26:19 2016)
  • %C: year divided by 100
  • %d: day of month, zero padded (01, 02, ...)
  • %-d: day of month (1, 2, ..., 31)
  • %D: date (04/05/16)
  • %e: day of month, blank padded (" 1", " 2", ..., "10", "11", ...)
  • %F: ISO 8601 date (2016-04-05)
  • %g: week-based calendar year modulo 100 (00..99)
  • %G: week-based calendar year (0001..9999)
  • %h: (same as %b) short month name (Jan, Feb, Mar, ...)
  • %H: hour of the day, 24-hour clock, zero padded (00, 01, ..., 24)
  • %I: hour of the day, 12-hour clock, zero padded (00, 01, ..., 12)
  • %j: day of year, zero padded (001, 002, ..., 365)
  • %k: hour of the day, 24-hour clock, blank padded (" 0", " 1", ..., "24")
  • %l: hour of the day, 12-hour clock, blank padded (" 0", " 1", ..., "12")
  • %L: milliseconds, zero padded (000, 001, ..., 999) (same as %3N)
  • %m: month number, zero padded (01, 02, ..., 12)
  • %_m: month number, blank padded (" 1", " 2", ..., "12")
  • %-m: month number (1, 2, ..., 12)
  • %M: minute, zero padded (00, 01, 02, ..., 59)
  • %3N: milliseconds, zero padded (000, 001, ..., 999) (same as %L)
  • %6N: microseconds, zero padded (000000, 000001, ..., 999999)
  • %9N: nanoseconds, zero padded (000000000, 000000001, ..., 999999999)
  • %N: second fraction, zero padded. (Same as %9N but may consume more than 9 digits while parsing)
  • %p: am-pm (lowercase)
  • %P: AM-PM (uppercase)
  • %r: 12-hour time (03:04:05 AM)
  • %R: 24-hour time (13:04)
  • %s: seconds since unix epoch (see Time#to_unix)
  • %S: seconds, zero padded (00, 01, ..., 59)
  • %T: 24-hour time (13:04:05)
  • %u: day of week (Monday is 1, 1..7)
  • %V: ISO calendar week number of the week-based year (01..53)
  • %w: day of week (Sunday is 0, 0..6)
  • %x: (same as %D) date (04/05/16)
  • %X: (same as %T) 24-hour time (13:04:05)
  • %y: year modulo 100
  • %Y: year, zero padded
  • %z: time zone offset from UTC as hour and minute with no separator (+0900)
  • %:z: time zone offset from UTC as hour and minute separated by colon (+09:00)
  • %::z: time zone offset from UTC as hour, minute and second separated by colon (+09:00:00)
  • %Z: location name or offset (e.g. Europe/Berlin)
  • %^Z: abbreviated time zone identifier or offset (e.g. CET)

Defined in:

json/from_json.cr
json/to_json.cr
time/format.cr
time/format/custom/http_date.cr
time/format/custom/iso_8601.cr
time/format/custom/rfc_2822.cr
time/format/custom/rfc_3339.cr
time/format/custom/yaml_date.cr
time/format/formatter.cr
time/format/parser.cr
time/format/pattern.cr
yaml/from_yaml.cr
yaml/to_yaml.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(pattern : String, location : Location? = nil)Source

Creates a new Time::Format with the given pattern. The given time location will be used when parsing a Time and no time zone is found in it.

Instance Method Detail

def format(time : Time, io : IO) : NilSource

Formats a Time into the given io.

def format(time : Time) : StringSource

Turns a Time into a String.

def from_json(pull : JSON::PullParser) : TimeSource

def from_yaml(ctx : YAML::ParseContext, node : YAML::Nodes::Node) : TimeSource

def parse(string, location = @location) : TimeSource

Parses a string into a Time.

def pattern : StringSource

Returns the string pattern of this format.

def to_json(value : Time, json : JSON::Builder) : NilSource

def to_yaml(value : Time, yaml : YAML::Nodes::Builder) : NilSource

© 2012–2021 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/1.2.1/Time/Format.html