Java 将时间戳解析为scala中所需的格式
我有这样的想法:Java 将时间戳解析为scala中所需的格式,java,scala,timestamp,Java,Scala,Timestamp,我有这样的想法: scala> val format = new java.text.SimpleDateFormat("yyyyMMddHHmmss") format: java.text.SimpleDateFormat = java.text.SimpleDateFormat@5069d960 scala> format.format(new java.util.Date()) res3: String = 20150807135758 我想将takeyyMMddhhmms
scala> val format = new java.text.SimpleDateFormat("yyyyMMddHHmmss")
format: java.text.SimpleDateFormat = java.text.SimpleDateFormat@5069d960
scala> format.format(new java.util.Date())
res3: String = 20150807135758
我想将takeyyMMddhhmmss从时间戳更改为yyMMddhhmmss,但是当我将toString
更改为时间戳时,我得到一个错误
scala> val newDate = format.subString(2, 11)
<console>:10: error: value subString is not a member of java.text.SimpleDateForm
at
val newDate = format.subString(2, 11)
^
但它并没有按照我想要的方式打印出来。如何解决此问题?在格式(日期)
返回的字符串上调用子字符串()
,而不是在格式
对象上调用子字符串()
,该对象是SimpleDataFormat
的实例:
format.format(新java.util.Date()).substring(2,11)
更好的是,您只需将模式更改为:
val format = new java.text.SimpleDateFormat("yyMMddHHmmss")
format.format(new java.util.Date())
结果为150807143842
在您的示例中,format
是类型为java.text.simpleDataFormat
的实例。当您在其上调用toString()
时,它将返回类的名称java.text.SimpleDataFormat
plus@
加上JVM生成的描述此实例的数字。这是Java(和Scala)中默认的toString()
行为,除非类重写toString()
此行为有效:
scala> val format = new java.text.SimpleDateFormat("yyyyMMddHHmmss")
format: java.text.SimpleDateFormat = java.text.SimpleDateFormat@5069d960
scala> format.toPattern.substring(2, 11)
res5: String = yyMMddHHm
很不清楚你在问什么,你想实现什么?您在格式上调用toString()
,该格式为java.text.simpleDataFormat
,然后toString()
将返回完整的类名加上@
加上一些JVM从时间戳生成的数字,因此20150807135758,我希望提取1508071357。YYYYMMDDHHSSS到yyMMddhhss。好的,希望我的回答对你有帮助。这肯定有帮助。谢谢
scala> val format = new java.text.SimpleDateFormat("yyyyMMddHHmmss")
format: java.text.SimpleDateFormat = java.text.SimpleDateFormat@5069d960
scala> format.toPattern.substring(2, 11)
res5: String = yyMMddHHm