从Scala开始的日子

时间:2015-08-24 01:46:57

标签: scala date

我希望将日期对象中的那一天作为整数。到目前为止这是我的代码。

val dateString = "2015-11-24 23:23:09"
val format = new java.text.SimpleDateFormat("yyyy-MM-dd H:m:s")
val date = format.parse(dateString)
print(date) # this gives Tue Nov 24 23:23:09 CST 2015

现在,从日期开始,我希望以月为单位获取整数。我怎么做? 谢谢。

3 个答案:

答案 0 :(得分:2)

只需使用Java Calendar类(虽然我建议你转到Joda库,如果你正在做很多关于日期/时间的工作):

val cal = Calendar.getInstance()
cal.setTime(date)
val dayOfMonth = cal.get(Calendar.DAY_OF_MONTH)

答案 1 :(得分:1)

TL;博士

LocalDateTime.parse( 
    "2015-11-24 23:23:09".replace( " " , "T" ) 
).getDayOfMonth()

java.time

现代方法使用java.time类。

在这里使用Java语法,因为我不知道Scala。请注意,java.time使用immutable objects

将您的字符串转换为符合ISO 8601标准格式,中间带有T

String input = "2015-11-24 23:23:09".replace( " " , "T" ) ;

解析为LocalDateTime,因为您的输入缺少任何时区或偏离UTC。

LocalDateTime ldt = LocalDateTime.parse( input ) ;

Interrogate for the day of month

int dom = ldt.getDayOfMonth() ;

答案 2 :(得分:0)

使用Joda,

org.joda.time.DateTime.now().getDayOfMonth()

或等效,

import java.util.Date
new org.joda.time.DateTime(new Date()).getDayOfMonth