groovy -- having problems getting date in human readable format -- tips?

Bryan Karsh
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 30, 2014

Hi guys,

How do I get human readable date from this? I can't get it to work. The closest I can get is the last login information in millisecond time?

import com.atlassian.jira.bc.security.login.LoginService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.util.UserUtil
import com.atlassian.crowd.embedded.api.CrowdService
import com.atlassian.crowd.embedded.api.UserWithAttributes
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import java.sql.Timestamp



def result = ""

def groupNames = [
        'jira-users',
]

CrowdService crowdService = ComponentAccessor.crowdService
UserWithAttributes user
UserUtil userUtil = ComponentAccessor.userUtil
LoginService loginService = ComponentAccessor.getComponent(LoginService)


userUtil.getAllUsersInGroupNamesUnsorted(groupNames).findAll { it.isActive() }.each {
    user = crowdService.getUserWithAttributes(it.getName())


    Long lastLoginTime = loginService.getLoginInfo(user.name).getLastLoginTime()

    if (lastLoginTime != NULL) {
        Timestamp lastLoginTimeStamp = new Timestamp(lastLoginTime as long);
        result += "User ${user.name} logged in: " + lastLoginTimeStamp + "\r\n"
    } else {
        result += "User ${user.name} logged in: " + "\t" + 'NULL' + "\r\n"


    }

}



}
return result

--tips appreciated!

3 answers

1 accepted

2 votes
Answer accepted
Vijay Khacharia
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 30, 2014

Hi,

This script runs well for me. It shows timestamp in human readable format.

import com.atlassian.jira.bc.security.login.LoginService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.util.UserUtil
import com.atlassian.crowd.embedded.api.CrowdService
import com.atlassian.crowd.embedded.api.UserWithAttributes
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import java.sql.Timestamp

def result = ""

def groupNames = [
'jira-users',
]

CrowdService crowdService = ComponentAccessor.crowdService
UserWithAttributes user
UserUtil userUtil = ComponentAccessor.userUtil
LoginService loginService = ComponentAccessor.getComponent(LoginService)

userUtil.getAllUsersInGroupNamesUnsorted(groupNames).findAll { it.isActive() }.each {
user = crowdService.getUserWithAttributes(it.getName())

if (loginService.getLoginInfo(user.name).getLastLoginTime() > 0) {
Long lastLoginTime = loginService.getLoginInfo(user.name).getLastLoginTime()

Timestamp lastLoginTimeStamp = new Timestamp(lastLoginTime as long);
result += "User ${user.name} logged in: " + lastLoginTimeStamp + "\r\n"
}else {
        result += "User ${user.name} logged in: " + "\t" + 'NULL' + "\r\n"
 
 
    }
}
result

Let me know if it doesnt work for you.

Vijay

Bryan Karsh
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 30, 2014

Thanks Vijay -- this works for me too.

0 votes
JamieA
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 30, 2014

new Date(lastLoginTimeStamp)

will give you a human date, as it will be implicity toString'd. You might want to use a DateFormat depending on your meaning of "human readable".

0 votes
Svante Gustafsson Björkegren
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 30, 2014

Hi Bryan,

The timestamp is stored in milliseconds from "the beginning of time".

You could try the solution in this post: http://stackoverflow.com/questions/3371326/java-date-from-unix-timestamp

Cheers,

// Svante

Suggest an answer

Log in or Sign up to answer