我在下面有这样的话:
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
我想将 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)
^
我可以看到这可以改为String:
scala> val newDate = format.toString()
newDate: String = java.text.SimpleDateFormat@5069d960
scala> newDate
res7: String = java.text.SimpleDateFormat@5069d960
scala> newDate.substring(2, 11)
res8: String = va.text.S
但它并没有真正打印出我想要的方式。我该如何解决这个问题?
答案 0 :(得分:2)
致电substring()
返回String
而不是format(Date)
对象format
上的SimpleDateFormat
:
format.format(new java.util.Date()).substring(2, 11)
更好的是,您只需将模式更改为:
val format = new java.text.SimpleDateFormat("yyMMddHHmmss")
format.format(new java.util.Date())
150807143842
中的结果。
在您的示例中,format
是java.text.SimpleDateFormat
类型的实例。当您在其上调用toString()
时,它将返回类java.text.SimpleDateFormat
加@
的名称以及描述此实例的JVM生成的数字。这是Java(和Scala)中的默认toString()
行为,除非类重写toString()
。
答案 1 :(得分:0)
这个有效:
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