zoukankan      html  css  js  c++  java
  • Java中格式化时间

    SimpleDateFormat这个类来解决我们的时间格式问题。

    SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式.

    日期和时间模式

    日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A''Z''a''z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在分析时与输入字符串进行匹配。

    定义了以下模式字母(所有其他字符 'A''Z''a''z' 都被保留):

    字母 日期或时间元素 表示 示例
    G Era 标志符 Text AD
    y Year 1996; 96
    M 年中的月份 Month July; Jul; 07
    w 年中的周数 Number 27
    W 月份中的周数 Number 2
    D 年中的天数 Number 189
    d 月份中的天数 Number 10
    F 月份中的星期 Number 2
    E 星期中的天数 Text Tuesday; Tue
    a Am/pm 标记 Text PM
    H 一天中的小时数(0-23) Number 0
    k 一天中的小时数(1-24) Number 24
    K am/pm 中的小时数(0-11) Number 0
    h am/pm 中的小时数(1-12) Number 12
    m 小时中的分钟数 Number 30
    s 分钟中的秒数 Number 55
    S 毫秒数 Number 978
    z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
    Z 时区 RFC 822 time zone -0800

    以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56
    日期和时间模式 结果
    "yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
    "EEE, MMM d, ''yy" Wed, Jul 4, '01
    "h:mm a" 12:08 PM
    "hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
    "K:mm a, z" 0:08 PM, PDT
    "yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
    "EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
    "yyMMddHHmmssZ" 010704120856-0700
    "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700

    SimpleDateFormat 在编程中的实际应用实例:

    (一)格式化(日期 -> 文本)

    一般地,中文中常用的  日期 时间如:20070719 20:29:30
    SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd hh:mm:ss");
      System.out.println("Date to String "+formater.format(new Date()));

    相近的常用形式还有 yyMMdd hh:mm:ss  yyyy-MM-dd hh:mm:ss  dd-MM-yyyy hh:mm:ss
    但是值得注意是:这种格式(19JUL07 )及其相近的形式,就有点小技巧  19JUL07
    SimpleDateFormat formater = new SimpleDateFormat("ddMMMyy",,new Locale("US"))
    System.out.println("Date to String "+formater.format(new Date()).toUpperCase());
    由于是英文的所以应该使用 Locale 对象参数,否则就使用的是默认本地 Locale 。

    (二)分析(文本 -> 日期)

    一般地,想要什么要的格式的时间就就使用什么形式的日期时间模式和文本参数,例如 2007-7-19 则返回一个java.util.Date型的时间对象,时分秒都补0

     formater = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
      
    try {
       System.out.println(
    "String to Date "+formater.parse("2007sep01"));
      }
     catch (ParseException e) {
       e.printStackTrace();
      }

     特别地,

     formater = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
      
    try {
       System.out.println(
    "String to Date "+formater.parse("2007sep01"));
      }
     catch (ParseException e) {
       e.printStackTrace();
      }

    它也返回一个java.util.Date型的日期对象,时分秒都补0

    (三)文本 - > Timestamp  、日期 -> Timestamp

    Timestamp t ;
      SimpleDateFormat format 
    = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      
    try {
       t 
    = new Timestamp(format.parse("2007-07-19 00:00:00").getTime());
      }
     catch (ParseException e) {
       e.printStackTrace();
      }


     Timestamp t ;
      SimpleDateFormat format 
    = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      t 
    = new Timestamp(new Date().getTime());
  • 相关阅读:
    当我们开发一个接口时需要注意些什么
    一条查询语句在MySQL服务端的执行过程
    痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4视频播放器(RT-Mp4Player)设计
    痞子衡嵌入式:基于恩智浦i.MXRT1010的MP3音乐播放器(RT-Mp3Player)设计
    《痞子衡嵌入式半月刊》 第 18 期
    痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件
    华为HMS Core助力开发者打造精品应用,共创数智生活
    HMS Core 6.0即将发布 加码应用生态升级
    华为开发者联盟生态市场企业特惠GO第1期—应用软件专题
    卡片跳转快应用指定页面,如何点返回直接退出快应用回到卡片
  • 原文地址:https://www.cnblogs.com/myssh/p/1390853.html
Copyright © 2011-2022 走看看