« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9704836 建立时间:2004年12月20日 |

| |
[jvm]java如何设置系统时间 原创空间, 软件技术, 电脑与网络
邢红瑞 发表于 2006/6/14 15:52:48 |
java语言无法设置系统时间,一般是使用jni或者使用shell处理,感觉比较麻烦,想起Sun JNI team的Sheng Liang 开发的Java Native Access (JNA)可以做到这些。大家可以从https://jna.dev.java.net/下载jna.jar,然后把它放入到工程的classpath中,package test;
import com.sun.jna.*;import com.sun.jna.win32.StdCallLibrary;
// kernel32.dll uses the __stdcall calling convention// Most C libraries will just extend com.sun.jna.Librarypublic interface Kernel32 extends StdCallLibrary {
Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
public static class SYSTEMTIME extends Structure { public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short wMilliseconds; }
void GetSystemTime(SYSTEMTIME result); void SetSystemTime(SYSTEMTIME result);}package test;
import test.Kernel32.SYSTEMTIME;
public class SetTime {
public static void main(String args[]) { Kernel32 lib = Kernel32.INSTANCE; SYSTEMTIME time = new SYSTEMTIME(); lib.GetSystemTime(time); time.wYear=2007; lib.SetSystemTime(time); System.out.println("Today's integer value is " + time.wDay);
}}其实应该为SetLocalTime这样没有时差问题。 |
|
回复:java如何设置系统时间 原创空间, 软件技术, 电脑与网络
ace(游客)发表评论于2010/1/21 10:36:21 |
但实际上在vista中调用SetSystemTime之后,系统时间并未设置成预期的值,不知道作者是否成功尝试过? |
|
» 1 »
|