Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确定java';用户是否更改了s user.timezone?_Java_Timezone_Default - Fatal编程技术网

如何确定java';用户是否更改了s user.timezone?

如何确定java';用户是否更改了s user.timezone?,java,timezone,default,Java,Timezone,Default,我目前正在寻找一种创造性的方法,来找出java中的user.timezone是否被命令行参数或其他自定义配置更改。因此,从技术上讲,我正在寻找一种解决方案,如何确定计算机的实时时区(如果这是可能的话) 非常感谢您的帮助 谢谢,也许你可以根据他们的ip等来确定。GeoLite2可以获取城市,从中可以查找该城市的时区(我不确定,它甚至可以直接为您提供时区)。你可以在获得他们的ip。我想到的第一个解决方案是探测外部来源。e、 如果你打字 wmic timezone get StandardName

我目前正在寻找一种创造性的方法,来找出java中的user.timezone是否被命令行参数或其他自定义配置更改。因此,从技术上讲,我正在寻找一种解决方案,如何确定计算机的实时时区(如果这是可能的话)

非常感谢您的帮助


谢谢,

也许你可以根据他们的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
,你将无法看到或绕过它。而且无论是原始时区还是黑客时区都不一定是“真实”时区……我喜欢这个想法!但是,我希望有一个离线解决方案。