时间和字符串互转

无论是对于java程序设计还是数据库操作,我们都避免不了需要针对时间进行操作,这就涉及到时间的格式和字符串如何与时间的不同格式进行互转。

一、时间和日期的模式:

字母

日期或时间元素

表示

示例

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

 

二、日期类型以及范围

(java中有Date和Timestamp类型,DateTime在SQL中)

Date(yyyy-MM-dd)                          1000-01-01~9999-12-31

DateTime (yyyy-MM-dd hh:mm:ss)     1000-01-01~9999-12-31

Timestamp (yyyy-MM-dd hh:mm:ss)  1970-01-01~2037-12-31

三、日期和时间互转

1、日期转字符串

// 时间转字符串——方法一:date--String

      public void stringToDate() {

           Date date = new Date();// 获取当前时间

           SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");// 格式类,括号里直接填时间格式

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");// 格式类,括号里直接填时间格式

SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 格式类,括号里直接填时间格式

           // 保存时间格式在字符串中便于输出显示

           String str1 = sdf1.format(date);

           String str2 = sdf2.format(date);

           String str3 = sdf3.format(date);

           // 输出测试

           System.out.println(str1+"\n"+str2+"\n"+str3+"\n");

      }

// 时间转字符串——方法二:long--Timestamp--date--String

      public static void timeToString() {

           // 获取当前系统的时间毫秒数,放入timestamp

           Timestamp tt = new Timestamp(System.currentTimeMillis());

           DateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 规定时间格式

           String str = df.format(tt);//按照格式转化为字符串

           System.out.println(str);

      }

2、字符串转时间

// 字符串转时间——方法一(异常方法)

public static void stringToDateErr() {

      String str = "2018-09-27";// 自定义时间类型字符串

      Timestamp tt = Timestamp.valueOf(str);// 转换格式

           //这样直接输出会报一个非法转换异常:Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]

           System.out.println(tt);

      }

      // 字符串转时间——方法一(格式正确)

      public static void stringToDate() {

           String str = "2018-09-27 13:14:50";// 自定义时间类型字符串

           Timestamp tt = Timestamp.valueOf(str);// 转换格式

           System.out.println(tt);// 正常输出

      }

      // 字符串转时间——方法二(String--date—long-- timestamp)

      public static void stringToTime() {

           String str = "2018-09-27";// 自定义时间类型字符串

           DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

           Date date;

           try {

                 date = df.parse(str);

                 long longtime = date.getTime();// 1970到现在的毫秒数

                 Timestamp tt = new Timestamp(longtime);// 转换为timestamp格式

                 System.out.println(tt);//正确输出

           } catch (ParseException e) {

                 e.printStackTrace();

           }

      }

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值