2013-06-08 14 views
32

Jestem nowy w Scali i nauczyłem się tego od kilku ostatnich dni. Mam wątpliwości co do zamiany Scali na string.Jak przekonwertować ciąg do daty w Scala?

Jak przekonwertować ciąg na datę i godzinę za pomocą Scala?

Czy działa tak samo, jak Java?

Kiedy robię to w ten sposób, pojawia się błąd kompilatora i nie mogę go przekonwertować na Scalę, ponieważ jestem nowy w Scali. I wiem, że nie jest dobrze konwertować Java na Scala ...

Proszę podzielić się swoją odpowiedzią.

+2

.. Tak to działa w ten sam sposób jak w Javie .. http://stackoverflow.com/a/5377949/920271 – Shrey

Odpowiedz

41

Jeśli używasz util.Date Javy następnie jak w Java:

val format = new java.text.SimpleDateFormat("yyyy-MM-dd") 
format.parse("2013-07-06") 

docs do formatowania - SimpleDateFormat

lub jeśli używasz Joda jest DateTime, a następnie wywołać metodę parse:

DateTime.parse("07-06-2013") 

docs - DateTime

+1

Czy istnieje jakiś pakiet w bibliotece scala zawierającej implicits tej przemiany? Coś jak czas trwania. – Jatin

+2

@Jatin nie, ale możesz napisać sam: 'niejawny def str2date (str: String) = DateTime.parse (str)' – 4lex1v

+0

Jeśli planujesz mieć więcej niż jeden wątek wykonania w swojej aplikacji, nie powinieneś używać 'SimpleDateFormat', ani' java.util.Date', ponieważ nie są bezpieczne dla wątków (zastrzeżenie jest ważne dla środowiska Java 7-). W takim przypadku należy rozważyć opcję 'joda.time'. – mlg

5

Moje rozwiązanie opcją jest użycie nscala-time: https://github.com/nscala-time/nscala-time

Dodaj to do twojego build.sbt jeśli używasz sbt.

libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "1.8.0" 

Importuj i przetwarzaj swoją datę.

import com.github.nscala_time.time.Imports._ 

DateTime.parse("2014-07-06") 
Powiązane problemy