Samuel Kajah
Samuel Kajah

Reputation: 61

Day from date Scala

I'd like to get the day from a date object as an integer. This is my code so far.

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

Now, from date, I want to get the day of the month as an integer. How do I do that? Thanks.

Upvotes: 2

Views: 6240

Answers (3)

Basil Bourque
Basil Bourque

Reputation: 338326

tl;dr

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

java.time

The modern approach uses the java.time classes.

Using Java syntax here as I don't know Scala. Note that java.time uses immutable objects.

Convert your string to comply with ISO 8601 standard format with a T in the middle.

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

Parse as an LocalDateTime as your input lacks any time zone or offset-from-UTC.

LocalDateTime ldt = LocalDateTime.parse( input ) ;

Interrogate for the day of month.

int dom = ldt.getDayOfMonth() ;

Upvotes: 1

elm
elm

Reputation: 20415

Using Joda,

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

or equivalently,

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

Upvotes: 0

Shadowlands
Shadowlands

Reputation: 15074

Just use the Java Calendar class (although I would recommend moving over to the Joda library if you are doing much serious work with dates/times):

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

Upvotes: 2

Related Questions