gpt4 book ai didi

java - 在 Java 中获取 Windows 用户的登录时间

转载 作者:可可西里 更新时间:2023-11-01 10:18:08 28 4
gpt4 key购买 nike

Java有没有办法获取当前用户登录的时间?

我知道如果你在 Windows 终端运行 quser,它会列出当前用户的一些基本信息,包括 LOGON TIME,精确到分钟。

是否有系统属性或我可以在 Java 中访问的东西,我可以从中获取用户的登录时间?

如果在 Windows、Mac OS、Android 等系统中有跨平台的方式获取当前用户的登录时间,则加分

最佳答案

一个可能的解决方案是像这样使用 Runtime.getRuntime().exec():

   public static void main(String[] args) throws Exception {
Process p;
StringBuilder sb = new StringBuilder();

p = Runtime.getRuntime().exec("quser");
p.waitFor();

BufferedReader reader
= new BufferedReader(new InputStreamReader(p.getInputStream()));

String line = "";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
System.out.println(sb);
}

能够成功获取我的登录信息:

run:

USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
robotlos console 1 Active 1+18:08 3/17/2016 10:36 AM

BUILD SUCCESSFUL (total time: 0 seconds)

要确定正在使用的操作系统,您可以使用 System.getProperty("os.name")

为了隔离日期和时间,在我的例子中,因为它是 sb 的最后 3 个子字符串,你可以这样做:

 String[] vals = sb.toString().split(" ");
String loginTime = vals[vals.length - 3] + " " + vals[vals.length - 2] + " " + vals[vals.length - 1];

虽然这不是最漂亮的解决方案,

System.out.println(loginTime);

将打印出:

3/17/2016 10:36 AM

关于java - 在 Java 中获取 Windows 用户的登录时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36338895/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com