java:时间显示------(日期格式化:format)

format方法:

  1. 格式化模式

  format方法中的“格式化模式”是一个用双引号括起的字符序列,该字符序列中的字符由时间格式符和普通字符所构成。例如 假设当前时间是 2016/10/1:

Date nowTime = new Date();
String s1 = String.format("%tY年%tm月%td日",nowTime,nowTime,nowTime);
String s2 = Stirng.format("%tF",nowTime);

s1的字符序列就是 “2016年10月01日”,s2的字符序列就是“2016-10-01”

  2.日期列表

  format方法中的“日期列表”可以是用逗号分隔的Calendar对象或Date对象。要保证format方法“格式化模式”中的格式符的个数与“日期列表”中列出的日期个数相同。format方法默认从左到右的顺序使用“格式化模式“中的格式符来格式”日期列表“中对应的日期,而”格式化模式“中的普通字符保留原样。

  3.格式化同一日期

  希望用几个格式符号格式”日期列表“中的同一日期,可以在”格式化模式“中使用 ”<" ,例如“%tY-%<tm-%<td"中的三个格式符将格式化同一日期,既含有"<"的格式符和它前面的格式符格式同一个日期, 例如(假设当前机器时间是2016年10月1日);

String str1 = String.format("%tY年%<tm月%<td日",nowTime);
String str2 = String.format("%tY-%<tm-%<td",nowTime);

那么%<tm和%<td都格式化nowTime,因此String对象str1和str2的字符序列分别是 ”2016年10月01日“ 和 ”2016-10-01“

  %tY 将日期中的“年”格式化为4位形式,例如:1999,2000

  %ty 将日期中的“年”格式化为2位形式(带前导零),例如:99,00

  %tm 将日期中的“月”格式化为2位形式(带前导零),即:01~13,其中“01”是一年的第一个月(“13”是支持阴历所需的一个特殊值)

  %tp 将日期中的“日”格式化为当前环境下上午、下午的表示格式,例如:(US环境)“am”、“pm”。

  %td 将日期中的“日”格式化为当前月中的天(带前导零),即01~31,“01”是一个月中的第一天

  %tj 将日期中的“日”格式化为当年的天数(带前导零),即001~365,“001”是一个年中的第一天

  %tB 将日期中的“月”格式化为当前环境下的月份全称,例如:(US环境)“January”、“February”。

  %tb将日期中的“月”格式化为当前环境下的月份简称,例如:(US环境)“Jan”、“Feb”。

  %tA 将日期中的“日”格式化为当前环境下的星期几的全称,例如:“Sunday”、“Monday”。

  %ta 将日期中的“日”格式化为当前环境下的星期几的简称,例如:“Sun”、“Mon”。  

  %tH 将日期中的“时”格式化为2位数形式(带前导零,24小时制),即00~23(00对应午夜)

  %tI 将日期中的“时”格式化为2位数形式(带前导零,12小时制),即01~12(01对应上午或者下午一点钟)

  %tM将日期中的“分”格式化为2位形式(带前导零),即:00~60,“00”是支持闰秒所需的一个特殊值

  %tS将日期中的“秒”格式化为2位形式(带前导零),即:00~60

  %tL将日期中的“毫秒”格式化为3位形式(带前导零),即:000~999

  %tN将日期中的毫秒中的“微秒”格式化为9位形式(带前导零),即:000000000~999999999

  %tz将日期与GMT(格林威治时间)的偏移量格式化为4位形式,例如:+0800,-0600

  %tZ将日期所在时区的名称格式化为标准缩写,例如:CST

 

另外,还有一些代表几个日期格式符组合在一起的日期格式符

  %tR=%tH:%tM

  %tT=%tH:%tM:%S

  %tr=%tI:%tM:%tS%Tp(上午或者下午标记的%Tp位置可能与地区有关)

  %tD=%tm%td%ty

  %tF=“%tY-%tm-%td”

  %tc=“%ta%tb%td%tT%tZ%tY”(例子:星期四 二月 10 17:50:07 CST 2011)

题目描述

小蓝要和朋友合作开发一个时间显示的网站。

在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 1970 年 1 月 1 日 00:00:00 到当前时刻经过的毫秒数。

现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。

给定一个用整数表示的时间,请将这个时间对应的时分秒输出

输入描述

输入一行包含一个整数,表示时间

输出描述

输出时分秒表示的当前时间,格式形如 HH:MM:SS,其中 HH 表示时,值为 0​​​​ 到 23​​​​,MM 表示分,值为 0​​ 到 59​​​,SS 表示秒,值为 0​​ 到 59​。时、分、秒 不足两位时补前导 0。

示例 1

 输入

46800999

 输出

13:00:00

示例 2

 输入

1618708103123

 输出

01:08:23
复制代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        long n=scan.nextLong();
        scan.close();
        long hh=0;
        long mm=0;
        long ss=0;
        n/=1000;
        ss=n%60;
        n/=60;
        mm=n%60;
        n/=60;
        hh=n%24;
        System.out.println(String.format("%02d",hh)+":"+String.format("%02d",mm)+":"+String.format("%02d",ss));
    }
}
复制代码

 

posted @   抹茶泡芙  阅读(1273)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示