java 处理 Linux时间

本文介绍了一个Java程序,该程序使用SimpleDateFormat类解析和格式化日期时间字符串。文章演示了如何将不同格式的日期时间字符串转换为Java Date对象,并进一步展示了如何将Date对象格式化为多种不同的字符串格式。
public class DateTest {
										  
	public static final String SOURCE = "Wed Apr 11 16:18:42 +0800 2012";
	
	public static void main(String[] args) throws ParseException {
		
		SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", new Locale("CHINA"));
		
		Date myDate = sdf.parse(SOURCE);
		System.out.println(myDate);
		
		sdf.applyPattern("EEE MMM dd HH:mm:ss Z yyyy");
		System.out.println(sdf.format(myDate));
		
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", new Locale("CHINESE", "CHINA"));
		System.out.println(sdf2.format(myDate));
		
		sdf2.applyPattern("yyyy年MM月dd日 HH时mm分ss秒");
		System.out.println(sdf2.format(myDate));
		
		long miliSeconds = myDate.getTime();
		System.out.println("自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象经过的毫秒数为:"+miliSeconds+"毫秒");
	}
	
	//          19/Jun/2012:11:05:28 +0800
	public static String timeFormator(String time_local){
		try {
			SimpleDateFormat parseFormat = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", new Locale("CHINA"));
			Date myDate = parseFormat.parse(time_local);
			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			return format.format(myDate);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}
}


Java中,同步Linux服务器的时间通常通过`java.net.Socket`或者`Runtime.getRuntime().exec()`等方法结合Linux命令来实现。以下是简要步骤: 1. **导入必要的包**: 首先,你需要导入`java.io`和`java.net`包,用于处理I/O操作。 ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; ``` 2. **创建Socket连接**: 创建一个Socket实例,指定服务器的IP地址和端口号(通常是`ntp`服务使用的默认端口53)。 ```java Socket socket = new Socket("your_server_ip", 53); ``` 3. **发送命令**: 使用`OutputStreamWriter`将命令写入Socket,这里通常使用`ntpd`服务的`qdcu`命令来请求系统时间。 ```java OutputStreamWriter outputStream = new OutputStreamWriter(socket.getOutputStream()); outputStream.write("qdcu\n"); // 请求当前时间 ``` 4. **读取响应**: 创建一个`BufferedReader`从服务器接收响应,并关闭Socket。 ```java BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); String response = reader.readLine(); socket.close(); // 检查返回结果并处理异常 if (response.equals("OK")) { System.out.println("Server time synchronized successfully."); } else { System.err.println("Failed to synchronize server time: " + response); } ``` 5. **异常处理**: 考虑到网络错误或其他可能的异常情况,记得捕获并处理可能出现的异常。 以上是一个基本的示例,实际应用中可能需要根据具体的服务器配置和需求进行调整。同时,注意在生产环境中使用这样的方法可能会涉及权限和安全问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值