时间格式
时间格式(协议) | 描述 |
---|---|
gg | 时期或纪元。 |
y | 不包含纪元的年份。不具有前导零。 |
yy | 不包含纪元的年份。具有前导零。 |
yyyy | 包含纪元的四位数的年份。 |
M | 月份数字。一位数的月份没有前导零。 |
MM | 月份数字。一位数的月份有一个前导零。 |
MMM | 月份的缩写名称,在AbbreviatedMonthNames中定义。 |
MMMM | 月份的完整名称,在MonthNames中定义。 |
d | 月中的某一天。一位数的日期没有前导零。 |
dd | 月中的某一天。一位数的日期有一个前导零。 |
ddd | 周中某天的缩写名称,在AbbreviatedDayNames中定义。 |
dddd | 周中某天的完整名称,在DayNames中定义。 |
h | 12小时制的小时。一位数的小时数没有前导零。 |
hh | 12小时制的小时。一位数的小时数有前导零。 |
H | 24小时制的小时。一位数的小时数没有前导零。 |
HH | 24小时制的小时。一位数的小时数有前导零。 |
m | 分钟。一位数的分钟数没有前导零。 |
mm | 分钟。一位数的分钟数有一个前导零。 |
s | 秒。一位数的秒数没有前导零。 |
ss | 秒。一位数的秒数有一个前导零。 |
f | 秒的小数精度为一位。其余数字被截断。 |
字符串与时间格式转换
Python
字符串转时间格式:
import datetimestr_time = '2022-01-01 12:00:00'time_obj = datetime.datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')
时间格式转字符串:
time_obj = datetime.datetime.now()str_time = time_obj.strftime('%Y-%m-%d %H:%M:%S')
Java
字符串转时间格式:
import java.text.SimpleDateFormat;import java.util.Date;String str_time = "2022-01-01 12:00:00";SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date time_obj = formatter.parse(str_time);
时间格式转字符串:
Date time_obj = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String str_time = formatter.format(time_obj);
C++
字符串转时间格式:
#include #include #include std::string str_time = "2022-01-01 12:00:00";struct tm time_obj;strptime(str_time.c_str(), "%Y-%m-%d %H:%M:%S", &time_obj);time_t timestamp = mktime(&time_obj);
时间格式转字符串:
time_t timestamp = time(NULL);struct tm time_obj = *localtime(×tamp);char str_time[20];strftime(str_time, sizeof(str_time), "%Y-%m-%d %H:%M:%S", &time_obj);std::string result(str_time);
Kotlin
字符串转时间格式:
fun main() {val timeString = "2023-03-02T12:34:56"val pattern = "yyyy-MM-dd'T'HH:mm:ss"val formatter = java.time.format.DateTimeFormatter.ofPattern(pattern)val dateTime = java.time.LocalDateTime.parse(timeString, formatter)println(dateTime)}
时间格式转字符串:
import java.time.LocalDateimport java.time.format.DateTimeFormatterfun main(args: Array<String>) {// Format y-M-d or yyyy-MM-dval string = "2017-07-25"val date = LocalDate.parse(string, DateTimeFormatter.ISO_DATE)println(date)}
Shell
日期转字符串
date +%F#输出格式 YYYY-MM-DDdate +'%F %H:%m:%S' #输出格式 YYYY-MM-DD HH:mm:ss
字符串转日期
date -d '2016-12-27'date -d '2016-12-27' +%s #转成时间戳
C
TIME ToTimeStamp(string strTime){tm _tm;int year, month, day, hour, minute,second;sscanf(strTime.c_str(), "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);_tm.tm_year = year - 1900;_tm.tm_mon = month - 1;_tm.tm_mday = day;_tm.tm_hour = hour;_tm.tm_min = minute;_tm.tm_sec = second;_tm.tm_isdst = 0;time_t t = mktime(&_tm);return t;}
C#
日期转字符串
DateTimeFormatInfo dfInfo=new DateTimeFormatInfo();dfInfo.ShortDatePattern = "yyyy/MM/dd hh:mm:ss:ffff";DateTime dt = Convert.ToDateTime("2019/07/01 18:18:18:1818", dfInfo);string dateString = dt.ToString();//或者dateString = dt.ToString("yyyy-MM-dd HH:mm:ss");
字符串转日期
string str=yyyy-MM-dd hh:mm:ss;Convert.ToDateTime(str);//例如string dateString = "20190701 18:18:18:1818";DateTime dt = DateTime.ParseExact(dateString, "yyyyMMddHHmmssffff", CultureInfo.CurrentCulture);DateTime.ParseExact(dateString, "yyyyMMddHHmmssffff", CultureInfo.InvariantCulture);
javascript
日期转字符串
function dateToString (date){varyear = date.getFullYear(); varmonth =(date.getMonth() + 1).toString(); varday = (date.getDate()).toString(); if(month.length == 1) {month ="0"+ month;}if(day.length == 1) {day ="0"+ day;} vardateTime = year +"-"+ month +"-"+ day; returndateTime; }
字符串转日期
function stringToDate (dateStr,separator){if (!separator){ separator= "-" ;}vardateArr = dateStr.split(separator);varyear = parseInt(dateArr[0]);varmonth;if (dateArr[1].indexOf( "0" ) == 0){month = parseInt(dateArr[1].substring(1));} else { month = parseInt(dateArr[1]);}varday = parseInt(dateArr[2]);vardate =newDate(year,month -1,day);returndate;}
或者直接在参数上加注解
@DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
时间戳
时间戳是一个以秒为单位的数字,表示从 1970 年 1 月 1 日(UTC 时间)开始的时间。
要将时间戳转换为其他时间格式,可以使用各种编程语言中的内置函数或库。
例如,在 Python 中,可以使用 datetime 模块中的 datetime 函数来将时间戳转换为时间字符串。
from datetime import datetimetimestamp = 1609459200# 转换为本地时间dt_obj = datetime.fromtimestamp(timestamp)# 转换为指定的格式time_str = dt_obj.strftime('%Y-%m-%d %H:%M:%S')print(time_str)# Output: "2021-01-01 00:00:00"
注意,时间戳是以 UTC 时间为基准的,如果需要转换为本地时间,需要使用 fromtimestamp 函数,而不是 utcfromtimestamp 函数。