private String getStartTime(Long param) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHH"); String date = sdf.format(new Date(param)); return date; }最后怎么把这个数据写到数据库对应的字段中?
时间: 2024-03-12 17:45:41 浏览: 57
具体如何将数据写入数据库对应的字段中,需要根据你使用的数据库类型、数据库连接方式和数据访问框架来确定。以下是一个示例代码,假设你使用的是MySQL数据库和JDBC连接方式:
```java
// 假设你已经获取了数据库连接
String sql = "INSERT INTO table_name (start_time) VALUES (?)";
PreparedStatement statement = connection.prepareStatement(sql);
// 假设你已经有了一个名为startTime的变量,值为通过getStartTime方法获取的时间字符串
statement.setString(1, startTime);
int rowsInserted = statement.executeUpdate();
if (rowsInserted > 0) {
System.out.println("数据插入成功");
}
```
这个示例代码中,我们使用了PreparedStatement来防止SQL注入攻击,并通过setString方法将获取到的时间字符串设置到SQL语句中。最后调用executeUpdate方法执行SQL语句,并判断是否插入成功。你可以根据自己的实际情况进行修改。
相关问题
为Java中public class Log { public void writeFile(String expression, String result) { try { final String currentLogPath = System.getProperty("user.dir"); final String fileName = currentLogPath + "/log.txt"; FileWriter writer = new FileWriter(fileName, true); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = sdf.format(new java.util.Date()); writer.write(time + ": " + expression + " = " + result + "\n"); writer.close(); } catch (IOException e) { System.out.println("Problem writing file!!!"); } } }添加注释
下面是对Java代码中Log类的writeFile方法添加注释的示例:
```
/**
* Log类,用于记录日志
*/
public class Log {
/**
* 将表达式和结果写入日志文件中
*
* @param expression 表达式
* @param result 计算结果
*/
public void writeFile(String expression, String result) {
try {
// 获取当前工作目录
final String currentLogPath = System.getProperty("user.dir");
// 定义日志文件名
final String fileName = currentLogPath + "/log.txt";
// 创建FileWriter对象
FileWriter writer = new FileWriter(fileName, true);
// 创建SimpleDateFormat对象,用于格式化时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 获取当前时间,并格式化
String time = sdf.format(new java.util.Date());
// 将表达式和结果写入文件
writer.write(time + ": " + expression + " = " + result + "\n");
// 关闭FileWriter对象
writer.close();
} catch (IOException e) {
// 异常处理
System.out.println("Problem writing file!!!");
}
}
}
```
注释应该包括类和方法的作用,参数的含义和作用,方法实现的详细过程等。这样可以提高代码的可读性和可维护性,方便其他开发者理解和修改代码。
JAVA 1.传入设备工作时段字符串,格式为String(HH:mm-HH:mm;HH:mm-HH:mm;HH:mm-HH:mm), 2.传入设备工作开始日期时间(Date类型yyyy-MM-dd hh:mm:ss) 3.传入设备工作结束日期时间(Date类型yyyy-MM-dd hh:mm:ss) 5.计算设备指定天工作了多少分钟 单位(分钟)
以下是 JAVA 实现代码:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DeviceWorkTimeCalculator {
/**
* 计算设备在指定日期范围内的工作时间(分钟)
* @param workTimeStr 设备工作时段字符串(格式为:HH:mm-HH:mm;HH:mm-HH:mm;HH:mm-HH:mm)
* @param startDate 设备工作开始日期时间
* @param endDate 设备工作结束日期时间
* @return 设备工作时间(分钟)
*/
public static int calculateDeviceWorkTime(String workTimeStr, Date startDate, Date endDate) {
// 将设备工作时段字符串解析为日历对象数组
Calendar[] workTimeCalendars = parseWorkTimeStr(workTimeStr);
if (workTimeCalendars == null || workTimeCalendars.length == 0) {
return 0;
}
// 将设备工作开始日期时间和结束日期时间转换为日历对象
Calendar startCalendar = Calendar.getInstance();
startCalendar.setTime(startDate);
Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(endDate);
// 如果设备工作开始时间在设备工作结束时间之后,则返回 0
if (startCalendar.after(endCalendar)) {
return 0;
}
int totalWorkTime = 0;
// 循环遍历设备工作时段日历对象数组
for (Calendar workTimeCalendar : workTimeCalendars) {
// 得到当天的工作开始时间和结束时间
Calendar startTime = getStartTime(startCalendar, workTimeCalendar);
Calendar endTime = getEndTime(endCalendar, workTimeCalendar);
// 如果开始时间在结束时间之后,则说明当天不工作,跳过计算
if (startTime.after(endTime)) {
continue;
}
// 计算当天的工作时间,并累加到总工作时间上
int workTime = calculateWorkTime(startTime, endTime);
totalWorkTime += workTime;
}
return totalWorkTime;
}
/**
* 将设备工作时段字符串解析为日历对象数组
* @param workTimeStr 设备工作时段字符串(格式为:HH:mm-HH:mm;HH:mm-HH:mm;HH:mm-HH:mm)
* @return 解析后的日历对象数组
*/
private static Calendar[] parseWorkTimeStr(String workTimeStr) {
String[] workTimeArr = workTimeStr.split(";");
Calendar[] workTimeCalendars = new Calendar[workTimeArr.length];
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
for (int i = 0; i < workTimeArr.length; i++) {
String[] timeArr = workTimeArr[i].split("-");
try {
Calendar startCalendar = Calendar.getInstance();
startCalendar.setTime(sdf.parse(timeArr[0]));
Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(sdf.parse(timeArr[1]));
workTimeCalendars[i] = startCalendar;
workTimeCalendars[i].set(Calendar.HOUR_OF_DAY, startCalendar.get(Calendar.HOUR_OF_DAY));
workTimeCalendars[i].set(Calendar.MINUTE, startCalendar.get(Calendar.MINUTE));
workTimeCalendars[i].set(Calendar.SECOND, 0);
workTimeCalendars[i].set(Calendar.MILLISECOND, 0);
if (endCalendar.before(startCalendar)) {
endCalendar.add(Calendar.DAY_OF_MONTH, 1);
}
while (workTimeCalendars[i].before(endCalendar)) {
workTimeCalendars[i].add(Calendar.DAY_OF_MONTH, 1);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return workTimeCalendars;
}
/**
* 得到当天的工作开始时间
* @param startCalendar 设备工作开始日期时间
* @param workTimeCalendar 当天的工作时段日历对象
* @return 当天的工作开始时间
*/
private static Calendar getStartTime(Calendar startCalendar, Calendar workTimeCalendar) {
Calendar startTime = Calendar.getInstance();
startTime.set(Calendar.YEAR, workTimeCalendar.get(Calendar.YEAR));
startTime.set(Calendar.MONTH, workTimeCalendar.get(Calendar.MONTH));
startTime.set(Calendar.DAY_OF_MONTH, workTimeCalendar.get(Calendar.DAY_OF_MONTH));
startTime.set(Calendar.HOUR_OF_DAY, workTimeCalendar.get(Calendar.HOUR_OF_DAY));
startTime.set(Calendar.MINUTE, workTimeCalendar.get(Calendar.MINUTE));
startTime.set(Calendar.SECOND, 0);
startTime.set(Calendar.MILLISECOND, 0);
if (startTime.before(startCalendar)) {
startTime.setTime(startCalendar.getTime());
}
return startTime;
}
/**
* 得到当天的工作结束时间
* @param endCalendar 设备工作结束日期时间
* @param workTimeCalendar 当天的工作时段日历对象
* @return 当天的工作结束时间
*/
private static Calendar getEndTime(Calendar endCalendar, Calendar workTimeCalendar) {
Calendar endTime = Calendar.getInstance();
endTime.set(Calendar.YEAR, workTimeCalendar.get(Calendar.YEAR));
endTime.set(Calendar.MONTH, workTimeCalendar.get(Calendar.MONTH));
endTime.set(Calendar.DAY_OF_MONTH, workTimeCalendar.get(Calendar.DAY_OF_MONTH));
endTime.set(Calendar.HOUR_OF_DAY, workTimeCalendar.get(Calendar.HOUR_OF_DAY));
endTime.set(Calendar.MINUTE, workTimeCalendar.get(Calendar.MINUTE));
endTime.set(Calendar.SECOND, 0);
endTime.set(Calendar.MILLISECOND, 0);
if (endTime.after(endCalendar)) {
endTime.setTime(endCalendar.getTime());
}
return endTime;
}
/**
* 计算工作时间(分钟)
* @param startTime 工作开始时间
* @param endTime 工作结束时间
* @return 工作时间(分钟)
*/
private static int calculateWorkTime(Calendar startTime, Calendar endTime) {
long workTimeMillis = endTime.getTimeInMillis() - startTime.getTimeInMillis();
int workTimeMinutes = (int) (workTimeMillis / (1000 * 60));
return workTimeMinutes;
}
}
```
使用方法如下:
```java
String workTimeStr = "08:30-12:00;13:30-17:30";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = sdf.parse("2021-10-01 09:00:00");
Date endDate = sdf.parse("2021-10-03 18:00:00");
int workTime = DeviceWorkTimeCalculator.calculateDeviceWorkTime(workTimeStr, startDate, endDate);
System.out.println("设备工作时间(分钟):" + workTime);
```
其中,`workTimeStr` 表示设备的工作时段,`startDate` 和 `endDate` 分别表示设备的工作开始日期时间和结束日期时间,`workTime` 表示设备在指定日期范围内的工作时间(分钟)。
阅读全文