2017-07-02 2 views
0

Ich habe eine Spalte, es hat Epoch Times (String-Typ) in der Tabelle.Will zu minus eine Stunde von der Epoche Zeit. Ich versuche, eine Zeichenfolge in Epoch Times umzuwandeln und das Minus zu tun. Aber ich kann die Zeichenfolge nicht in Epochzeit umwandeln. Irgendwelche Hilfe, bitte?Wie konvertiert man die Zeichenfolge in die Epoche?

für zB:

val epochTime="1499013460" 

Ich möchte ti eine Stunde von der Zeit über Epoche subtrahieren.

Danke! Hier

+0

Post ein Beispiel für Ihr String-Datumsformat, wenn möglich – greenshade

+0

Haben Sie versucht, hier zu suchen? https://stackoverflow.com/questions/31134969/how-to-convert-unix-timestamp-to-date-in-spark –

+0

ja ich versuchte. Hitting mit verursacht durch: java.lang.IllegalArgumentException: ungültiges Format: "1499015689 "ist bei" 9 "fehlerhaft. val table = Seq (("1499015689", 1), ("1499015689", 2)). toDF ("col1", "col2") val time_col = tabelle.select (col ("col1")) . map (line => new DateTime (line (0)). toString ("yyyy-MM-dd")). toDF() Bitte lassen Sie mich wissen, dass ich einen Fehler gemacht habe. Danke! –

Antwort

1

Wenn Sie eine Epoche Zeitwerte und alles, was Sie wollen, ist eine Stunde von ihm subtrahieren Sie mit der einfachsten Lösung gehen kann, möglich, die lautet:

val secondsPerHour = 60 * 60 
val withHourSubtracted = (epochTime.toLong - secondsPerHour).toString 
1

ist ein Ansatz:

scala> import java.time.Instant 
import java.time.Instant 

scala> val myString = Instant.now().toString 
myString: String = 2017-07-02T17:04:39.911Z 

scala> Instant.parse(myString).getEpochSecond 
res8: Long = 1499015079 
Verwandte Themen