Ruby/Time

Aus Scientia
Wechseln zu: Navigation, Suche

Die Time-Klasse handhabt Uhrzeit und Datum. Sie ermöglicht zudem das Auslesen der aktuellen Systemzeit und die Darstellung von Zeitangaben als Strings.

Erzeugen von Time Instanzen

Um eine Time-Instanz für ein bestimmtes Datum zu erzeugen, schreibt man:

Time.new(jahr, monat, tag, stunde, minute, sekunde)
# Beispiel
time = Time.new(2011, 3, 6, 14, 30, 0)

Die Systemzeit auslesen

Mit dem Befehl

time = Time.now

erhält man eine Instanz der Time-Klasse, die die aktuelle Systemzeit enthält.

Zugriff auf die Zeitangaben

time = Time.now
seconds = time.sec
minutes = time.min
hours = time.hour
day = time.day
month = time.month
year = time.year

Die Zeit als String darstellen

Will man die aktuelle Uhrzeit in einem Fenster anzeigen, so muss sie vorher in einen String umgewandelt werden. Hierfür gibt es die Methode Time#stftime. Sie wird auf das Time-Objekt angewandt und erhält als Parameter einen String, der angibt wie die Zeit formatiert dargestellt werden soll.

time =  Time.now
# Es ist 18:00 Uhr
str = time.strftime("Es ist %H:%M Uhr")
# Wir leben im Jahre 2011
str = time.strftime("Wir leben im Jahre %Y"

Die Kontrollzeichen, bestehend aus einem % gefolgt von einem Buchstaben, werden dann durch die jeweilige Zeitangabe ersetzt. Folgende Kontrollzeichen stehen zur Verfügung:

  • %A = Wochentag, lang (Sunday)
  • %a = Wochentag, kurz (Sun)
  • %B = Monat, lang (January)
  • %b = Monat, kurz (Jan)
  • %c = komplettes Datum
  • %d = Tag (01..31)
  • %H = Stunde im 24 Format (00..23)
  • %I = Stunde im 12-Format (01..12)
  • %j = Tage, seit Jahresbeginn (001..366)
  • %M = Minuten (00..59)
  • %m = Monat (01..12)
  • %p = Meridiananzeige/Anzeige ob es vormittags oder nachmittags ist (``AM oder ``PM)
  • %S = Sekunden (00..60)
  • %U = "x"te Woche im Jahr (beginnt mit dem ersten Sonntag als erstem Tag der ersten Woche) (00..53)
  • %W = "x"te Woche im Jahr (beginnt mit dem ersten Montag als erstem Tag der ersten Woche) (00..53)
  • %w = Wochentag (als Zahl) "0=Sonntag; 1=Montag; 2=Dienstag; ...; 6=Samstag"
  • %X = Uhrzeit
  • %x = Datum
  • %Y = Jahr (vier Ziffern)
  • %y = Jahr (nur die lezten 2 Ziffern) (00..99)
  • %Z = Zeitzone
  • %z = Zeitzone
  • %% = Zeigt Zeichen an