本文已参与「新人创作礼」活动,一起开启掘金创作之路。
时间戳和时间格式
1.Java下的时间格式
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
// 初始化 Date 对象
Date date = new Date();
// 使用 toString() 函数显示日期时间
System.out.println(date.toString());
}
}
输出的格式
Mon May 04 09:51:52 CDT 2013
这个格式不是很好阅读,换个正常的
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String[] args) {
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
System.out.println("当前时间为: " + ft.format(dNow));
}
}
$: 当前时间为: 2022-01-26 10:16:34
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss"); 中的 "yyyy-MM-dd hh:mm:ss" 是啥?
| 字母(注意大小写) | 含义 | 示例 |
|---|---|---|
| y | 年份 | 一般用 yy 表示两位年份,yyyy 表示 4 位年份 使用 yy 表示的年扮,如 11;使用 yyyy 表示的年份,如 2011 |
| M | 月份 | 一般用 MM 表示月份,如果使用 MMM,则会根据语言环境显示不同语言的月份 使用 MM 表示的月份,如 05;使用 MMM 表示月份,在 Locale.CHINA语言环境下,如“十月”;在 Locale.US语言环境下,如 Oct |
| d | 月份中的天数 | 一般用 dd 表示天数 使用 dd 表示的天数,如 10 |
| D | 年份中的天数 | 表示当天是当年的第几天, 用 D 表示 使用 D 表示的年份中的天数,如 295 |
| E | 星期几 | 用 E 表示,会根据语言环境的不同, 显示不同语言的星期几 使用 E 表示星期几,在 Locale.CHINA 语言环境下,如“星期四”;在 Locale.US 语言环境下,如 Thu |
| H | 一天中的小时数(0~23) | 一般用 HH 表示小时数 使用 HH 表示的小时数,如 18 |
| h | 一天中的小时数(1~12) | 一般使用 hh 表示小时数 使用 hh 表示的小时数,如 10 (注意 10 有可能是 10 点,也可能是 22 点) |
| m | 分钟数 | 一般使用 mm 表示分钟数 使用 mm 表示的分钟数,如 29 |
| s | 秒数 | 一般使用 ss 表示秒数 使用 ss 表示的秒数,如 38 |
| S | 毫秒数 | 一般使用 SSS 表示毫秒数 使用 SSS 表示的毫秒数,如 156 |
| Z | 时区 | Eastern Standard Time |
| c | 包括全部日期和时间信息 | 星期六 十月 27 14:21:20 CST 2007 |
| F | "年-月-日"格式 | 2007-10-27 |
| D | "月/日/年"格式 | 10/27/07 |
| r | "HH:MM:SS PM"格式(12时制) | 02:25:51 下午 |
| T | "HH:MM:SS"格式(24时制) | 14:28:16 |
| R | "HH:MM"格式(24时制) | 14:28 |
2.测试代码
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
// 初始化 Date 对象
Date date = new Date();
//c的使用
System.out.printf("全部日期和时间信息:%tc%n",date);
//f的使用
System.out.printf("年-月-日格式:%tF%n",date);
//d的使用
System.out.printf("月/日/年格式:%tD%n",date);
//r的使用
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
//t的使用
System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
//R的使用
System.out.printf("HH:MM格式(24时制):%tR",date);
}
}
3. golang下的时间格式
const (
ANSIC = "Mon Jan _2 15:04:05 2006"
UnixDate = "Mon Jan _2 15:04:05 MST 2006"
RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
RFC822 = "02 Jan 06 15:04 MST"
RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen = "3:04PM"
// Handy time stamps.
Stamp = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano = "Jan _2 15:04:05.000000000"
)
这个和java的字符替换格式不太一样以下是对照表
| 占位符 | 含义 | 示例 |
|---|---|---|
| 01/Jan | 月 | 2006-01-02 |
| 02 | 日 | 2006-01-02 |
| 03/15 | 小时 | 15:04:05 |
| 04 | 分钟 | 15:04:05 |
| 05 | 秒 | 15:04:05 |
| 06 | 年 | 2006 (这个06只能表示2位年,是否会有问题?) |
| -07[00][:00] | 时差/时区 | |
| PM | 上下午 | |
| Mon | 星期几 |