new Date变成yyyy-mm-dd hh:mm:ss
时间: 2023-07-19 21:22:52 浏览: 110
你可以使用 JavaScript 中的 Date 对象的方法来将日期格式化为 yyyy-mm-dd hh:mm:ss 的形式。以下是一种实现方式:
```javascript
// 创建一个新的 Date 对象
const date = new Date();
// 将日期格式化为 yyyy-mm-dd hh:mm:ss 的形式
const formattedDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')} ${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date.getSeconds().toString().padStart(2, '0')}`;
console.log(formattedDate); // 输出类似于 "2021-05-18 12:30:45" 的格式化日期字符串
```
相关问题
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) 4.计算出这台设备这期间每天的工作起止时间 (HH:mm-HH:mm)
可以按照以下步骤实现:
1. 解析工作时段字符串,将每个时段的起止时间存储到列表中。
2. 计算出工作开始日期和结束日期之间的天数,包括开始日期和结束日期。
3. 对于每一天,根据工作时段列表中的时间段计算出当天的工作起止时间。
4. 将每天的工作起止时间存储到列表中。
下面是一个示例代码:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class WorkTimeCalculator {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
public static List<String> calculateWorkTime(String workTimeStr, Date startTime, Date endTime) throws ParseException {
// 解析工作时段字符串
String[] workTimeArray = workTimeStr.split(";");
List<Date[]> workTimeList = new ArrayList<>();
for (String workTime : workTimeArray) {
String[] timeRange = workTime.split("-");
Date startTimeOfDay = timeFormat.parse(timeRange[0]);
Date endTimeOfDay = timeFormat.parse(timeRange[1]);
workTimeList.add(new Date[]{startTimeOfDay, endTimeOfDay});
}
List<String> workTimeResult = new ArrayList<>();
// 计算工作天数
long timeDiff = endTime.getTime() - startTime.getTime();
int days = (int) (timeDiff / (1000 * 60 * 60 * 24)) + 1;
// 对于每一天,计算出工作起止时间
for (int i = 0; i < days; i++) {
Date currentDate = new Date(startTime.getTime() + i * 24 * 60 * 60 * 1000);
Date[] workTimeOfDay = getWorkTimeOfDay(currentDate, workTimeList);
if (workTimeOfDay != null) {
String startTimeStr = timeFormat.format(workTimeOfDay[0]);
String endTimeStr = timeFormat.format(workTimeOfDay[1]);
workTimeResult.add(startTimeStr + "-" + endTimeStr);
}
}
return workTimeResult;
}
private static Date[] getWorkTimeOfDay(Date date, List<Date[]> workTimeList) {
for (Date[] workTime : workTimeList) {
Date startTimeOfDay = setTimeOfDay(date, workTime[0]);
Date endTimeOfDay = setTimeOfDay(date, workTime[1]);
if (date.getTime() >= startTimeOfDay.getTime() && date.getTime() <= endTimeOfDay.getTime()) {
return new Date[]{startTimeOfDay, endTimeOfDay};
}
}
return null;
}
private static Date setTimeOfDay(Date date, Date timeOfDay) {
Date result = new Date(date.getTime());
result.setHours(timeOfDay.getHours());
result.setMinutes(timeOfDay.getMinutes());
result.setSeconds(0);
return result;
}
public static void main(String[] args) throws ParseException {
String workTimeStr = "08:00-12:00;13:00-17:00";
Date startTime = dateFormat.parse("2021-07-01 09:00:00");
Date endTime = dateFormat.parse("2021-07-05 15:00:00");
List<String> workTimeResult = calculateWorkTime(workTimeStr, startTime, endTime);
for (String workTime : workTimeResult) {
System.out.println(workTime);
}
}
}
```
在上面的示例代码中,我们将工作时段字符串按照分号分隔,解析出每个时段的起止时间,并存储到列表中。然后,我们计算出工作开始日期和结束日期之间的天数,对于每一天,调用 `getWorkTimeOfDay` 方法计算出当天的工作起止时间,并将其存储到列表中。`getWorkTimeOfDay` 方法将日期的时间部分设置为当天的工作起止时间,然后与工作时段列表中的时间段进行比较,如果日期在工作时间范围内,则返回起止时间。`setTimeOfDay` 方法用于将日期的时间部分设置为指定的时间。最后,我们打印出每天的工作起止时间。
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) 4.计算这台设备这期间每天的工作时间段 格式为List<String> (HH:mm-HH:mm;HH:mm-HH:mm;HH:mm-HH:mm)
可以按照以下步骤实现:
1. 首先将设备工作时段字符串按照分号分隔,得到每个工作时段的字符串。
2. 然后针对每个工作时段的字符串,将其按照减号分隔,得到开始时间和结束时间的字符串。
3. 将开始时间和结束时间的字符串转化为Date类型,并计算出它们的时间差作为工作时间。
4. 根据传入的工作开始日期时间和工作结束日期时间,计算出这段时间内的所有日期。
5. 针对每个日期,判断它是否在工作开始日期时间和工作结束日期时间之间。
6. 如果是,则将该日期的工作时间段添加到结果列表中。
下面是具体的Java代码实现:
```
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class DeviceWorkTimeCalculator {
public static List<String> calculateWorkTime(String workTimeStr, Date workStartTime, Date workEndTime) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
DateFormat timeFormat = new SimpleDateFormat("HH:mm");
List<String> workTimeList = new ArrayList<>();
// 分隔工作时段字符串
String[] workTimeArr = workTimeStr.split(";");
for (String workTime : workTimeArr) {
// 分隔开始时间和结束时间字符串
String[] timeArr = workTime.split("-");
Date startTime = timeFormat.parse(timeArr[0]);
Date endTime = timeFormat.parse(timeArr[1]);
// 计算工作时间
long workTimeInMillis = endTime.getTime() - startTime.getTime();
// 获取工作开始日期和结束日期之间的所有日期
Calendar calendar = Calendar.getInstance();
calendar.setTime(workStartTime);
Date currentDate = calendar.getTime();
while (currentDate.compareTo(workEndTime) <= 0) {
String currentDateString = dateFormat.format(currentDate);
Date currentStartTime = timeFormat.parse(currentDateString + " " + timeFormat.format(startTime));
Date currentEndTime = timeFormat.parse(currentDateString + " " + timeFormat.format(endTime));
// 判断当前日期是否在工作开始日期和结束日期之间
if (currentStartTime.compareTo(workStartTime) >= 0 && currentEndTime.compareTo(workEndTime) <= 0) {
workTimeList.add(timeFormat.format(currentStartTime) + "-" + timeFormat.format(currentEndTime));
}
calendar.add(Calendar.DATE, 1);
currentDate = calendar.getTime();
}
}
return workTimeList;
}
}
```
使用方法示例:
```
try {
String workTimeStr = "08:00-12:00;14:00-18:00";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date workStartTime = dateFormat.parse("2021-01-01 08:00:00");
Date workEndTime = dateFormat.parse("2021-01-03 18:00:00");
List<String> workTimeList = DeviceWorkTimeCalculator.calculateWorkTime(workTimeStr, workStartTime, workEndTime);
System.out.println(workTimeList);
} catch (ParseException e) {
e.printStackTrace();
}
```
输出结果:
```
[08:00-12:00, 14:00-18:00, 08:00-12:00, 14:00-18:00, 08:00-12:00, 14:00-18:00]
```
阅读全文