如何确定java';用户是否更改了s user.timezone?
我目前正在寻找一种创造性的方法,来找出java中的user.timezone是否被命令行参数或其他自定义配置更改。因此,从技术上讲,我正在寻找一种解决方案,如何确定计算机的实时时区(如果这是可能的话) 非常感谢您的帮助如何确定java';用户是否更改了s user.timezone?,java,timezone,default,Java,Timezone,Default,我目前正在寻找一种创造性的方法,来找出java中的user.timezone是否被命令行参数或其他自定义配置更改。因此,从技术上讲,我正在寻找一种解决方案,如何确定计算机的实时时区(如果这是可能的话) 非常感谢您的帮助 谢谢,也许你可以根据他们的ip等来确定。GeoLite2可以获取城市,从中可以查找该城市的时区(我不确定,它甚至可以直接为您提供时区)。你可以在获得他们的ip。我想到的第一个解决方案是探测外部来源。e、 如果你打字 wmic timezone get StandardName
谢谢,也许你可以根据他们的ip等来确定。GeoLite2可以获取城市,从中可以查找该城市的时区(我不确定,它甚至可以直接为您提供时区)。你可以在获得他们的ip。我想到的第一个解决方案是探测外部来源。e、 如果你打字
wmic timezone get StandardName
在Windows命令行中,您应该获得您的时区。理论上,您可以通过在Java中运行此命令获得输出,如中所述
另外,在Java中运行一个晦涩难懂的命令可能不是“高质量的”,也可能不是最有效的。其思想是以某种方式使用另一个进程,该进程不继承JVM参数或其他“定制”(例如命令行、Javascript、可能的其他脚本语言等)
另一种可能是(取决于你有什么客户信息可用)使用
e、 g.如果我在LHR登机,笔记本设置为当地时间,在LAX离开飞机,那么什么是“真正的TZ”?“真正的TZ”是指你的计算机上的设置。e、 g.当您的实时计算机时间设置为America/Los_Angeles,但运行带-Duser.timezone=UTC的java时,我希望获得America/Los_Angeles。有多种方法可以在启动后修改您的时区。设置TZ是一种方法,您可以通过使用经过适当净化的环境运行(Java)子流程来绕过它(请参见Java.lang.ProcessBuilder)。但是如果一个特权用户(在Linux上)入侵了
/etc/timezone
,你将无法看到或绕过它。而且无论是原始时区还是黑客时区都不一定是“真实”时区……我喜欢这个想法!但是,我希望有一个离线解决方案。