#能正常储存
str(datetime.datetime.now())
#报错
info_time = "2022-08-12 09:46:34"
虽说可以储存到varchar里,但是没法正常排序,所以还是需要存到类似DATETIME里,请问该怎么操作呢?
字符串格式的日期格式,在mysql里面本来就是弱化存储的,应该不会报错的,如果报错,看看报错截图
转成Date类型或者时间戳再进行存储,具体方法参考如下:
Python:
import time
today = "2022-08-12 08:08:08"
timearray = time.strptime(today, "%Y-%m-%d %H:%M:%S")
timeStamp = int(time.mktime(timearray))
print(timeStamp)
Java:
/**
* 将字符串转化为DATE
*
* @param dtFormat 格式 或 yyyy-MM-dd或 yyyy-M-dd或 yyyy-M-d或
* yyyy-MM-d或 yyyy-M-dd
* @return
*/
public static Date fmtStrToDate(String dtFormat) {
if (dtFormat == null) {
return null;
}
try {
if (dtFormat.length() == 9 || dtFormat.length() == 8) {
String[] dateStr = dtFormat.split("-");
dtFormat = dateStr[0] + (dateStr[1].length() == 1 ? "-0" : "-")
+ dateStr[1] + (dateStr[2].length() == 1 ? "-0" : "-")
+ dateStr[2];
}
if (dtFormat.length() != 10 & dtFormat.length() != 19)
return null;
if (dtFormat.length() == 10)
dtFormat = dtFormat + " 00:00:00";
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
return dateFormat.parse(dtFormat);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 将字符串转化为DATE
*
* @param dtFormat 格式 或 yyyy-MM-dd或 yyyy-M-dd或 yyyy-M-d或
* yyyy-MM-d或 yyyy-M-dd
* @return
*/
public static Date yyyyMMHHmmssStrToDate(String dtFormat) {
if (dtFormat == null) {
return null;
}
return cn.hutool.core.date.DateUtil.parse(dtFormat);
}
/*
* 将时间转换为时间戳
*/
public static String dateToStamp(String s) throws ParseException{
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = simpleDateFormat.parse(s);
long ts = date.getTime();
res = String.valueOf(ts);
return res;
}
欢迎采纳
用datetime将字符串转换为日期对象啊
import datetime
info_time = "2022-08-12 09:46:34"
info_time = datetime.datetime.strptime(info_time, '%Y-%m-%d %H:%M:%S')
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
存到datetime 里面 规范一点
建议转化成时间戳,然后存储,更便于排序和比较。
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 该类提供了 日期转换成字符串 和 字符串转换成日期
*/
public class DateUtil {
/**
* 日期转换成字符串格式
* @param date 日期对象
* @return 返回字符串格式的日期
*/
public static String dateToString(Date date){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = df.format(date);
return strDate;
}
/**
* 字符串转换成日期
* @param strDate 字符串格式的日期
* @return 返回对应的日期
*/
public static Date stringToDate (String strDate){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
方法已经封装 可以直接使用``
```