格式化输出日期和时间

如果想输出自己想要的日期和时间格式,那就要用到SimpleDateFormat类,它是DateFormat类唯一的非抽象子类,它在显示日期和时间方面有强大的功能。比如要输出“星期日 2004.06.06 at 06:53:01 下午 CST”,只要显式地构造一个实例:
SimpleDateFormat formatter=new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
其中,E表示星期几;yyyy、MM、dd表示年、月、日;'at'指字符串"at";hh:mm:ss表示时间;a表示A.M或P.M;zzz表示时区;
下面是SimpleDateFormat类中的格式代码
符号 意义
G 公元
Y 年
M 月
d 日
h A.M/P.M制的钟点(1-12)
H 24小时制的钟点(0-23)
m 分钟
s 秒
S 毫秒
E 星期几
D 一年中的第几天
F 某月的第几个星期几
w 一年中的第几个星期
W 一个月中的第几个星期
a A.M/P.M标记
k 24小时制的钟点(1-24)
K A.M/P.M制的钟点(0-11)
z 时区
' 转义符
" 单引号
import java.util.*;
import java.text.*;
public class DoDate {
public DoDate() {
}
public String fotmatDate1(Date myDate) {
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH时mm分ss秒");
String strDate = formatter.format(myDate);
return strDate;
}
public String fotmatDate2(Date myDate) {
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日");
String strDate = formatter.format(myDate);
return strDate;
}
public String fotmatDate3(Date myDate) {
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
String strDate = formatter.format(myDate);
return strDate;
}
public String fotmatDate4(Date myDate) {
SimpleDateFormat formatter = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
String strDate = formatter.format(myDate);
return strDate;
}
public String fotmatDate5(Date myDate) {
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy/MM/dd");
String strDate = formatter.format(myDate);
return strDate;
}
public String fotmatDate6(Date myDate) {
SimpleDateFormat formatter = new SimpleDateFormat ("MM-dd HH:mm");
String strDate = formatter.format(myDate);
return strDate;
}
public static void main(String args[]){
System.out.println("aaa");
DoDate dd=new DoDate();
System.out.println(dd.fotmatDate1(new Date()));
System.out.println(dd.fotmatDate2(new Date()));
System.out.println(dd.fotmatDate3(new Date()));
System.out.println(dd.fotmatDate4(new Date()));
System.out.println(dd.fotmatDate5(new Date()));
System.out.println(dd.fotmatDate6(new Date()));
}
}
运行结果:
C:/java>java DoDate
aaa
2004年06月06日 18时53分00秒
2004年06月06日
2004-06-06 18:53:01
星期日 2004.06.06 at 06:53:01 下午 CST
2004/06/06
06-06 18:53
在C语言中,格式化输出日期时间主要依赖于`<time.h>`头文件中提供的函数结构体。以下是一个完整的实现方式: ### 使用 `strftime` 格式化日期时间 可以使用`strftime`函数将时间以指定的格式输出字符串。该函数允许定义年、月、日、时、分、秒等部分的显示方式,支持多种格式化选项。 示例代码如下: ```c #include <stdio.h> #include <time.h> int main() { time_t rawtime; struct tm * timeinfo; char buffer[80]; // 获取当前时间 time(&rawtime); // 转换为本地时间 timeinfo = localtime(&rawtime); // 使用 strftime 格式化时间 strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo); printf("当前时间: %s\n", buffer); return 0; } ``` 这段代码首先调用`time()`函数获取当前时间戳,然后通过`localtime()`将其转换为本地时间表示形式。最后,使用`strftime()`函数将时间信息按照`"%Y-%m-%d %H:%M:%S"`格式写入字符数组`buffer`中,并打印输出[^1]。 ### 时间结构体 `struct tm` 的字段说明 `localtime()`函数返回一个指向`struct tm`类型的指针,其中包含日期时间的各个组成部分,包括: - `tm_year`:年份(从1900年开始计算) - `tm_mon`:月份(从0开始,0代表1月) - `tm_mday`:一个月中的第几天 - `tm_hour`:小时(24小时制) - `tm_min`:分钟 - `tm_sec`:秒数 - `tm_wday`:一周中的第几天(0代表星期日) - `tm_yday`:一年中的第几天 - `tm_isdst`:是否启用夏令时(>0表示启用,0表示不启用,<0表示未知)。 ### 自定义格式化输出 `strftime()`函数的格式化规则灵活多样,例如: - `%Y`:四位数的年份(如2025) - `%y`:两位数的年份(如23) - `%m`:两位数的月份(01到12) - `%d`:两位数日期(01到31) - `%H`:24小时制的小时(00到23) - `%I`:12小时制的小时(01到12) - `%M`:两位数分钟(00到59) - `%S`:两位数的秒数(00到59) - `%A`:完整的星期名称(如Monday) - `%a`:缩写的星期名称(如Mon) - `%B`:完整的月份名称(如January) - `%b` 或 `%h`:缩写的月份名称(如Jan) ### 示例:自定义格式化输出 ```c strftime(buffer, sizeof(buffer), "今天是 %Y 年 %m 月 %d 日,%A", timeinfo); printf("%s\n", buffer); ``` 上述代码会输出类似“今天是 2025 年 04 月 05 日,星期六”的内容。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值