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.