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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gis可视化的方法_gis可视化分析

    gis可视化的方法_gis可视化分析前言从去年开始无脑接触Cesium三维GIS可视化,入坑之后一直到到现在,其实已经写了多个项目了,中间也遇到了很多坑点,很早就想分享其中所获了,只是觉得不太专业而且没有太多时间,…

    2022年9月1日
    3
  • Android Studio 教程:入门开发第一个程序「建议收藏」

    Android Studio 教程:入门开发第一个程序「建议收藏」AndroidStudio教程:入门开发第一个程序2018.09.1114:3016005浏览开发第一应用可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击StartanewAndroidStudioProject创建工程:接下来需要输入应用名称(第一个字母要大写)、公司域以及指定应用存放目录,点击Next按钮进入下一步:如果第一个字母…

    2022年6月1日
    38
  • 图像特征点匹配算法_bf模式匹配算法

    图像特征点匹配算法_bf模式匹配算法现阶段,基于特征点匹配的算法,如SIFT,SURF等著名匹配算法,都是基于一个尺度空间来进行描述的,那么了解尺度空间是什么将是全面了解特征点匹配的关键性基础知识。网上基于尺度空间的基础知识有很少的介绍,所以本章将主要介绍尺度空间,我们将从最底层了解怎么提取特征点,为啥用这种特征点具有较强的鲁棒性。

    2022年10月14日
    2
  • ubuntu12.04内核版本_ubuntu内核版本查看

    ubuntu12.04内核版本_ubuntu内核版本查看下载内核:http://kernel.ubuntu.com/~kernel-ppa/mainline/下载对应的deb文件。根据自己需求选择版本。我安装的是4.10版本:对于64位系统:wgethttp://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001_4.10.1-041001.2…

    2022年8月23日
    5
  • c# listview排序功能_c#入门

    c# listview排序功能_c#入门ListViewColumnSorter.csusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Collections;usingSystem.Windows.Forms;namespaceMicroblue{   classListViewColumnSorter:IComparer   {       /**/       ///       

    2022年10月3日
    3
  • qt中readyread信号的使用_心动的信号cp组合有哪些

    qt中readyread信号的使用_心动的信号cp组合有哪些本文主要介绍readyread函数的触发机制,会涉及到一点tcp/ip和流的知识。tcp/ip和流这方面其他朋友介绍很多了,这里我就不再赘述。本文不打算使用太过专业的词汇,一方面主要目的是让大家明白,另一方面是我也不太专业。一、问题描述:你之所以会来看我这篇文章,大概是遇到了一下几个问题:1、使用QTcpSocket时,readyread函数没有触发,或者触发了,但是触发次数不是自己想…

    2022年9月9日
    2

发表回复

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

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