java在用SimpleDateFormat格式化时间时月份出现奇怪值[通俗易懂]

这两天在做课设,关于图书管理系统的,其中在借书的记录中,时间记录的月份总是出现不正常的数值,大于12经常四十几五十几,经过对借书模块的跟踪,最后将错误定位到了时间格式化的这行代码SimpleDateFormat f = newSimpleDateFormat(“yyyy-mm-dd HH:mm:ss”);经过这行代码是要将格式化为常见的2013-07-11 09:07:20这种格式,结果经

大家好,又见面了,我是全栈君。

这两天在做课设,关于图书管理系统的,其中在借书的记录中,时间记录的月份总是出现不正常的数值,大于12经常四十几五十几,经过对借书模块的跟踪,最后将错误定位到了时间格式化的这行代码

SimpleDateFormat f = newSimpleDateFormat(“yyyy-mm-dd HH:mm:ss”);

经过这行代码是要将格式化为常见的2013-07-11 09:07:20这种格式,结果经常出现2013-00-11 09:07:20或者2013-34-1109:07:20,月份很奇怪,然后发现yyyy-mm-ddHH:mm:ss中月份的MM被我小写了,这导致在格式化时会把分钟的时间放到月份位置,也就出现了奇怪的是月份,经过修改为

SimpleDateFormatf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

之后,时间就正常了.

虽然很简单,但是提示我,再简单的一行代码也会有出错的可能.

 

下面记录一下SimpleDateFormat 的用法

Java 代码:

import java.text.SimpleDateFormat;

SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss ");
Date curDate = new Date(System.currentTimeMillis());//获取当前时间
String str = formatter.format(curDate);


以上可以获取当前的年月时分,也可以合起来写(如下):
Java代码:   

 

SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date = sDateFormat.format(new java.util.Date());

如果想获取当前的年月,则可以这样写(只获取时间或者秒种用法一样):
Java代码:

 

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM");
String date=sdf.format(new java.util.Date());

当然还有就是可以指定时区的时间(待):

 

df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.CHINA);
System.out.println(df.format(new Date()));

如何获取Android系统时间是24小时制还是12小时制:
  

ContentResolver cv = this.getContentResolver();  
  String strTimeFormat = android.provider.Settings.System.getString(cv,
  android.provider.Settings.System.TIME_12_24);
  if(strTimeFormat.equals("24"))
  {
  Log.i("activity","24");
  }

 

取得系统日期:

Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.grt(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
hour = c.get(Calendar.HOUR_OF_DAY);
minute = c.get(Calendar.MINUTE);



利用Time获取:

Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料。
  t.setToNow(); // 取得系统时间。
  int year = t.year;
  int month = t.month;
  int date = t.monthDay;
  int hour = t.hour; // 0-23
  int minute = t.minute;
  int second = t.second;//唯一不足是取出时间只有24小时模式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121475.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月9日 上午8:00
下一篇 2022年3月9日 上午9:00


相关推荐

  • 子网掩码与子网划分

    子网掩码与子网划分子网掩码与子网划分 nbsp 目录 nbsp 一 摘要 nbsp 二 子网掩码的概念及作用 nbsp 三 为什么需要使用子网掩码 nbsp 四 如何用子网掩码得到网络 主机地址 nbsp 五 子网掩码的分类 nbsp 六 子网编址技术 nbsp 七 如何划分子网及确定子网掩码 nbsp 八 相关判断方法 nbsp 一 摘要 nbsp 近期在我的论坛中大家对子网掩码以及子网划分的讨论比较多 因为前面也写了关于 ip 地址的教程 为了延续性 就写了这个关于子网掩码与子网划分的教程 学这篇教

    2026年3月16日
    3
  • 介绍ActionChains

    介绍ActionChains介绍 ActionChains www cnblogs com feng0815 p 8344120 html

    2026年3月18日
    3
  • AI Agent 框架演进

    AI Agent 框架演进

    2026年3月15日
    1
  • Apache的URL地址重写(RewriteCond与RewriteRule)

    Apache的URL地址重写(RewriteCond与RewriteRule)Apache的URL地址重写http://hi.baidu.com/sonan/blog/item/c408963d89468208bba16716.html第一种方法:Apache环境中如果要将URL地址重写,正则表达式是最基本的要求,但对于一般的URL地址来说,基本的匹配就能实现我们大部分要求,因此除非是非常特殊的URL地址,但这不是我要讨论的范围,简单几招学会Apache中URL地

    2022年6月11日
    26
  • java异常中常见的问题

    java异常中常见的问题

    2021年10月2日
    44
  • Pygame学习笔记 6 —— 3D游戏

    Pygame学习笔记 6 —— 3D游戏    pygame是是上世纪的产品,虽然不适合最3D游戏,但我可以使用pygame来绘制简单的3D图形,就像在白纸上画立体图形一样。主要内容:视觉上的远近、3D空间基本知识、绘制一个空间图形…

    2022年5月26日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号