时间格式

时间格式(协议)描述
gg时期或纪元。
y不包含纪元的年份。不具有前导零。
yy不包含纪元的年份。具有前导零。
yyyy包含纪元的四位数的年份。
M月份数字。一位数的月份没有前导零。
MM月份数字。一位数的月份有一个前导零。
MMM月份的缩写名称,在AbbreviatedMonthNames中定义。
MMMM月份的完整名称,在MonthNames中定义。
d月中的某一天。一位数的日期没有前导零。
dd月中的某一天。一位数的日期有一个前导零。
ddd周中某天的缩写名称,在AbbreviatedDayNames中定义。
dddd周中某天的完整名称,在DayNames中定义。
h12小时制的小时。一位数的小时数没有前导零。
hh12小时制的小时。一位数的小时数有前导零。
H24小时制的小时。一位数的小时数没有前导零。
HH24小时制的小时。一位数的小时数有前导零。
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(&timestamp);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 函数。