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


相关推荐

  • 网站去色_sepaidui

    网站去色_sepaidui这2010-8-8–2010-8-15几天是哀悼日把自己的网站图片、还有其他的表格都变成黑白的,就是把整站变成灰色的。方法:这段代码可以变网页为黑白,将代码加到CSS最顶端就可以实现素装。有一些站长的网站可能使用这个css不能生效,是因为网站没有使用最新的网页标准协议请将网页最头部的替换为以上代码。有一些网站FLASH动画的颜色不能被CSS滤镜控制,可以在FLASH代码的和之间插入:

    2022年10月6日
    6
  • 逆变器运用到的c语言算法,详解六种逆变电源的控制算法[通俗易懂]

    逆变器运用到的c语言算法,详解六种逆变电源的控制算法[通俗易懂]在电路中将直流电转换为交流电的过程称之为逆变,这种转换通常通过逆变电源来实现。这就涉及到在逆变过程中的控制算法问题。本文引用地址:http://www.eepw.com.cn/article/201710/366918.htm只有掌握了逆变电源的控制算法,才能真正意义上的掌握逆变电源的原理和运行方式,从而方便设计。在本篇文章当中,小编将对逆变电源的控制算法进行总结,帮助大家进一步掌握逆变电源的相关…

    2022年5月17日
    69
  • 面试压力测试题情景题_压缩弹簧经常使用会发生什么

    面试压力测试题情景题_压缩弹簧经常使用会发生什么题解状态压缩dp,f[i][j]代表第i行状态为j的方案数#include<bits/stdc++.h>using namespace std;#define x first#define y second#define send string::npos#define lowbit(x) (x&(-x))#define left(x) x<<1#define right(x) x<<1|1#define transformu(s) tr..

    2022年8月8日
    6
  • python微信机器人制作教程+源码[通俗易懂]

    python微信机器人制作教程+源码[通俗易懂]python微信机器人,定时机器人,监控机器人。

    2022年8月23日
    7
  • PyCharm 支持中文和代理方法[通俗易懂]

    PyCharm 支持中文和代理方法[通俗易懂]在代码的开头(import语句之前)添加#coding:utf-8这样就可在代码及注释中包含中文了,并且输出也可以是中文

    2022年8月26日
    7
  • python创建学生管理系统_学员管理系统 培训机构

    python创建学生管理系统_学员管理系统 培训机构使用面向对象完成了学员管理系统,实现了添加、删除、修改、查询、保存读取等功能。将学员、学员管理后台、开始入口分为了3个py文件,分别是Student.py、Student_management.py、main.py。保存文件名叫student.txt文件。内含注释,我也是给初学者,可能有些地方解释不清楚。Student.py代码如下#定义学生的类classStudent(object):def__init__(self,name,gender,number):

    2025年12月7日
    5

发表回复

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

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