yyyy-MM-dd HH:mm:ss 时间格式 时间戳 全面解读超详细

时间格式

时间格式(协议) 描述
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 datetime

str_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.LocalDate
import java.time.format.DateTimeFormatter

fun main(args: Array<String>) {
    // Format y-M-d or yyyy-MM-d
    val string = "2017-07-25"
    val date = LocalDate.parse(string, DateTimeFormatter.ISO_DATE)

    println(date)
}

Shell

日期转字符串

date +%F  #输出格式 YYYY-MM-DD
date +'%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){ 
   var  year = date.getFullYear(); var  month =(date.getMonth() + 1).toString(); var  day = (date.getDate()).toString();  
   if  (month.length == 1) { 
       month =  "0"  + month; 
   } 
   if  (day.length == 1) { 
       day =  "0"  + day; 
   }
   var  dateTime = year +  "-"  + month +  "-"  + day;
   return  dateTime; 
}

字符串转日期


function stringToDate (dateStr,separator){
      if (!separator){
             separator= "-" ;
      }
      var  dateArr = dateStr.split(separator);var  year = parseInt(dateArr[0]);var  month;                      
      if (dateArr[1].indexOf( "0" ) == 0){
          month = parseInt(dateArr[1].substring(1));
      } else {
           month = parseInt(dateArr[1]);
      }
      var  day = parseInt(dateArr[2]);
      var  date =  new  Date(year,month -1,day);
      return  date;
  }

或者直接在参数上加注解

@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 函数。

你可能感兴趣的:(Java,python,java,c++)