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!
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
Thanks Vijay -- this works for me too.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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".
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.