`

聊一聊java中date的使用

    博客分类:
  • java
阅读更多

     首先说下,我也是菜鸟,在使用java Date时,刚开始总有种有力使不上的的感觉,大多数时间我们使用Date其实就是在String和他之间转换来转换去的。为了能更好的使用这个东西,我很多时候会有这样的疑问:

     String s="1995年的3月那个流着血的18日";

     Date d=?;

我们该怎么样转化呢?正则?字符串解析?其实java提供了一个非常方便的让我们处理各种自定义日期格式的工具类

public abstract class DateFormat  extends Format

同时他有一个实现子类:SimpleDateFormat

 

SimpleDateFormat(String pattern)
          用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat

这是他初始化的一个方法,其中的pattern可以使用自定义的日期格式,配合这标准的日期参数使用,感觉非常灵活好用,具体如下,自己体会,参数附录在最后。

 

其中的核心两个常用转换方法是:

public final String format(Date date)
将一个 Date 格式化为日期/时间字符串。

 

参数:
date - 要格式化为时间字符串的时间值。
返回:
已格式化的时间字符串。

public Date parse(String source)
           throws ParseException
从给定字符串的开始解析文本,以生成一个日期。该方法不使用给定字符串的整个文本。

有关日期解析的更多信息,请参阅 parse(String, ParsePosition) 方法。

 

参数:
source - 一个 String,应从其开始处进行解析。
返回:
解析字符串得到的 Date
抛出:
ParseException - 如果无法解析指定字符串的开始处。

 

 

 

 

 

 

具体用法如下:

package langtest;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String string="1995年的3月那个流着血的18日";
  Date date=new Date();
  DateFormat dateFormat=new SimpleDateFormat("yyyy年的M月那个流着血的dd日");
  try {
   date=dateFormat.parse(string);
   System.out.println(date);
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  String string2=dateFormat.format(date);
  System.out.println(string2);
  
 }

}

另附上初始化SimpleDateFormat具体要用到的各个参数:

字母 日期或时间元素 表示 示例
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

其中总容易被搞错的就是月份的M是大写的,而分钟数m则是小写的,参数上很多都蛮实用的,但是要注意大小写,

  • doc.rar (2.5 MB)
  • 下载次数: 93
分享到:
评论

相关推荐

    聊一聊Calendar的使用

    这篇博文“聊一聊Calendar的使用”可能详细介绍了如何利用`Calendar`进行日期计算、时间格式化以及其他相关操作。`Calendar`类在实际开发中非常常见,尤其在需要对日期进行复杂处理时,如计算两个日期之间的差值、...

    JAVA面试题解惑系列合集

    字符串是Java中非常特殊的对象类型,字符串的创建和拼接有很多细节,比如字符串连接使用'+'时,会生成多个String对象,而使用StringBuilder或者StringBuffer则更为高效。另外字符串池的存在也使得字符串的操作更加...

    臧圩人--JAVA面试题解惑系列合集.pdf

    - **知识点**:介绍Java中日期和时间API的使用,重点在于`Date`、`Calendar`类以及新引入的`java.time`包下的类如`LocalDate`、`LocalTime`、`ZonedDateTime`等,以适应不同的时区需求。 **1.8 JAVA面试题解惑系列...

    JAVA面试题解惑系列

    在Java中,类的初始化顺序是一个重要的概念,特别是在处理继承时尤为重要。根据提供的描述,我们可以了解到作者希望通过一系列实例帮助读者更好地理解类的初始化过程。以下是对几个核心知识点的深入探讨。 #### ...

    Java面试题解惑系列

    // 不建议在循环中使用 ``` **解析**: 1. `s1` 和 `s2` 都指向字符串常量池中的 `"hello"`,因此 `s1 == s2` 返回 `true`。 2. `s3` 是通过 `new` 关键字创建的新对象,虽然内容相同,但是与 `s1` 不是同一对象...

    Java面试题详解,和一些基础知识的深入剖析,个人认为非常棒

    “JAVA面试题解惑系列(七)——日期和时间的处理”讨论的是Java中处理日期和时间的API,早期的java.util.Date和Calendar已经逐渐被Java 8引入的java.time包取代,后者提供了更加直观和易用的接口。 “JAVA面试题...

    linux jdk 1.8 64位

    - **Lambda表达式**:这是Java 8最重要的特性之一,它允许开发者使用函数作为方法参数,简化了多线程编程和处理集合数据。 - **方法引用和构造器引用**:这些是与lambda表达式相关的特性,可以更简洁地引用已有...

    Log4net可移植套用Winform实例

    Log4net是基于Java的Log4j移植过来的,旨在为.NET开发者提供一种方便、高效的日志记录工具。它支持多种输出方式,如控制台、文件、数据库、SMTP邮件等,并具有丰富的配置选项,可以满足不同级别的日志记录需求。 **...

    新的

    在IT行业中,Java是一种广泛应用的高级编程语言,以其“一次编写,到处运行”的特性而闻名。这个名为"New-master"的压缩包文件很可能是某个Java项目或教程的源代码库,可能包含了各种Java编程的实践示例或者一个完整...

    Finals_2

    【描述】Finals_2是一个针对Java编程期末考试的复习资源包,包含了重要的概念、语法、API使用以及常见问题的解答,旨在帮助学生全面掌握Java编程的核心知识,为考试做好充分准备。 【标签】Java: 这个标签表明了...

    LcxXmlSerialize:描述这是一个类似于gson和Jackson解析JSON的项目,旨在对XML进行序列化和反序列化

    Java到XML序列化,然后再次返回。 这是一个类似于gson和Jackson解析JSON的项目,旨在对XML进行序列化和反序列化。 如何使用 目的 public static void main( String [] args) throws Exception { User record = new...

    SugarRandom:随机生成的数据工具

    在 Java 项目中,你可以通过以下方式引入并使用 SugarRandom: ```java import com.mikusugar.sugarrandom.SugarRandom; public class Main { public static void main(String[] args) { // 生成一个10个字符的...

    logstash-7.4.2.tar.gz.zip

    Logstash 是一个强大的开源数据收集引擎,用于实时抽取、转换和加载(通常称为ELK stack中的"L")日志和其他时间序列数据。它允许你从各种数据源接收数据,然后通过过滤器进行处理,最后将处理后的数据发送到各种...

    JMapper-开源

    在Java开发中,数据对象间的转换是一个常见的任务,例如从数据库查询结果转换为业务对象,或者在不同层次结构之间传递数据。JMapper提供了一个高效、灵活且易于使用的解决方案,使得这种转换过程变得更加便捷。 **...

    JavaTaskSpotinst

    目标:设计和实施一个程序,该程序将处理和管理“文件系统”结构。 文件系统包含以下实体和操作: 文件定义为具有: A name - up to 32 characters long A size - positive long integer A create date (date ...

    android-util:常用的安卓的控件以及扩展类

    这个"android-util-master"库是一个强大的工具集合,通过合理使用,可以显著提高开发效率,减少代码量,同时保证应用的稳定性和性能。在实际项目中,开发者可以根据需求选择性地引入和使用这些工具类和控件扩展,以...

    kafka-hadoop-loader-my:kafka0.8.2使用简单的消费者负载消息使用自定义mapreduce进入hdfs

    然后,映射器接收最不利的消息对,解析日期的内容并发出(date,message),然后由Output Format拾取并在hdfs级别上分区到其他位置。 解剖学 HadoopJob -> KafkaInputFormat -> zkUtils.getBrokerPartitions

    spring-mvc-msgpack-sample:Spring MVC + MessagePack 示例

    Spring MVC + MessagePack 示例 跑步 $ mvn spring-boot:run $ curl -v "localhost:8080/calc?left=100&right=300" > GET /calc?... Date: Fri, 16 Jan 2015 15:00:26 GMT < leftd right , answer

Global site tag (gtag.js) - Google Analytics