Java 中的 SimpleDateFormat 【 parse 和 format 】【转换时间格式】

    在 Java 里面有很多特别方便的函数(尽管术语可能不这么说)可以供我们使用,让一些本来要写好长好多的代码的事情变得仅仅几行就解决了。

在 SimpleDateFormat 中,有以下特定的规则:
         

G 年代标志符     y 年     M 月     d 日     h 时(在上午或者下午 12小时制)     H 时(在一天中 24小时制)

m 分     s 秒     S 毫秒     E 星期     D 一年中的第几天     z 时区     F 一月中第几个星期几     w 一年中第几个星期

W 一月中第几个星期     a 上午 / 下午标记符     k 时(在一天中的、24小时制)     K 时(在上午或者下午、12小时制)

下面这题为例(SDUT 2246):

对于日期的常用格式,在中国常采用格式的是“年年年年/月月/日日”或写为英语缩略表示的”yyyy/mm/dd”,此次编程竞赛的启动日期“2010/11/20”就是符合这种格式的一个日期,

而北美所用的日期格式则为“月月/日日/年年年年”或”mm/dd /yyyy”,如将“2010/11/20”改成这种格式,对应的则是”11/20/2010”。对于时间的格式,则常有12小时制和24小时制

的表示方法,24小时制用0-24来表示一天中的24小时,而12小时制只采用1-12表示小时,再加上am/pm来表示上午或下午,比如”17:30:00”是采用24小时制来表示时间,而对应的

12小时制的表示方法是”05:30:00pm”。注意12:00:00pm表示中午12点,而12:00:00am 表示凌晨12点。

对于给定的采用”yyyy/mm/dd”加24小时制(用短横线”-”连接)来表示日期和时间的字符串,请编程实现将其转换成”mm/dd/yyyy”加12小时制格式的字符串。

1import java.util.*; 2import java.text.ParseException; 3import java.text.SimpleDateFormat; 4 5public class Main { 6 public static void main(String[] args) { 7 Scanner sc = new Scanner(System.in); 8 int n; 9 n = sc.nextInt(); 10 sc.nextLine(); 11 SimpleDateFormat df1 = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss",Locale.CHINA); 12 SimpleDateFormat df2 = new SimpleDateFormat("MM/dd/yyyy-hh:mm:ssa",Locale.US); 13 String s; 14 while(n -- > 0) { 15 s = sc.nextLine(); 16 try { 17 System.out.println(df2.format(df1.parse(s)).toLowerCase()); 18 }catch(ParseException e) { 19 e.printStackTrace(); 20 } 21 } 22 23 } 24} 25

其中需要知道的是,SimpleDateFormat 在 Java 里面要导入包 java.text.SimpleDateFormat 这样才可以用。                         语句中: SimpleDateFormat df1 = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss",Locale.CHINA);  以CHINA时间为准,定义格式为24小时制的时间格式,可以是这样的形式:2018/11/27-17:12:12 ,同样的道理第二个格式定义语句有同样的功能,format 的作用就是转换成这个格式,而 parse (从语法上描述或分析(词句等))可以把字符串转换成相应的格式储存,类型是 Date,这就像是一个字符型 '0' 和整数型 0 是差不多的道理。

其中在时间格式中的那个  Locale.US , 不要忘记了那个点,变成 US 是可以让上下午变成 am 或者 pm 。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前

Java 中的 SimpleDateFormat 【 parse 和 format 】【转换时间格式】 - HelloWorld