java中,date类型,有的显示是Mon Jul 15 14:27:02 CST 2013,有的显示是2013/7/15?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中,date类型,有的显示是Mon Jul 15 14:27:02 CST 2013,有的显示是2013/7/15?相关的知识,希望对你有一定的参考价值。

我想知道怎么相互转换的?都是date类型,这些是debug跟的时候发现的,我应该怎么把Mon Jul 15 14:27:02 CST 2013格式转换成2013/7/15?都是Date类型
第一个图片就是2013-07-17格式的Date类型

第二个图片就是Mon Jul 15 14:27:02 CST 2013格式的Date类型

package com.util;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CommonDateParseUtil 
public static final String ENG_DATE_FROMAT = "EEE, d MMM yyyy HH:mm:ss z";
public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
public static final String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
public static final String YYYY_MM_DD = "yyyy-MM-dd";
public static final String YYYY = "yyyy";
public static final String MM = "MM";
public static final String DD = "dd";

/**
 * @param date
 * @return
 * @作者 王建明
 * @创建日期 2012-7-13
 * @创建时间 下午12:22:40
 * @描述 —— 格式化日期对象
 */
public static Date date2date(Date date, String formatStr) 
SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
String str = sdf.format(date);
try 
date = sdf.parse(str);
 catch (Exception e) 
return null;

return date;


/**
 * @param date
 * @return
 * @作者 王建明
 * @创建日期 2012-7-13
 * @创建时间 下午12:24:19
 * @描述 —— 时间对象转换成字符串
 */
public static String date2string(Date date, String formatStr) 
String strDate = "";
SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
strDate = sdf.format(date);
return strDate;


/**
 * @param date
 * @return
 * @作者 王建明
 * @创建日期 2012-7-13
 * @创建时间 下午12:24:19
 * @描述 —— sql时间对象转换成字符串
 */
public static String timestamp2string(Timestamp timestamp, String formatStr) 
String strDate = "";
SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
strDate = sdf.format(timestamp);
return strDate;


/**
 * @param dateString
 * @param formatStr
 * @return
 * @作者 王建明
 * @创建日期 2012-7-13
 * @创建时间 下午1:09:24
 * @描述 —— 字符串转换成时间对象
 */
public static Date string2date(String dateString, String formatStr) 
Date formateDate = null;
DateFormat format = new SimpleDateFormat(formatStr);
try 
formateDate = format.parse(dateString);
 catch (ParseException e) 
return null;

return formateDate;


/**
 * @param date
 * @return
 * @作者 王建明
 * @创建日期 2012-10-10
 * @创建时间 上午09:18:36
 * @描述 —— Date类型转换为Timestamp类型
 */
public static Timestamp date2timestamp(Date date) 
if (date == null)
return null;
return new Timestamp(date.getTime());


/**
 * @return
 * @作者 王建明
 * @创建日期 2012-9-13
 * @创建时间 下午05:02:57
 * @描述 —— 获得当前年份
 */
public static String getNowYear() 
SimpleDateFormat sdf = new SimpleDateFormat(YYYY);
return sdf.format(new Date());


/**
 * @return
 * @作者 王建明
 * @创建日期 2012-9-13
 * @创建时间 下午05:03:15
 * @描述 —— 获得当前月份
 */
public static String getNowMonth() 
SimpleDateFormat sdf = new SimpleDateFormat(MM);
return sdf.format(new Date());


/**
 * @return
 * @作者 王建明
 * @创建日期 2013-01-24
 * @创建时间 08:41:47
 * @描述 —— 获得当前日期中的日
 */
public static String getNowDay()
SimpleDateFormat sdf = new SimpleDateFormat(DD);
return sdf.format(new Date());


/**
 * @param time
 * @return
 * @作者 王建明
 * @创建日期 2012-6-17
 * @创建时间 上午10:19:31
 * @描述 —— 指定时间距离当前时间的中文信息
 */
public static String getLnow(long time) 
Calendar cal = Calendar.getInstance();
long timel = cal.getTimeInMillis() - time;
if (timel / 1000 < 60) 
return "1分钟以内";
 else if (timel / 1000 / 60 < 60) 
return timel / 1000 / 60 + "分钟前";
 else if (timel / 1000 / 60 / 60 < 24) 
return timel / 1000 / 60 / 60 + "小时前";
 else 
return timel / 1000 / 60 / 60 / 24 + "天前";


参考技术A 没有任何格式的日期直接打印出的就是这种形式:Mon Jul 15 14:27:02 CST 2013
其他日期形式都需要通过格式化来完成
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");  //此处日期格式可以随便填写
sdf.format(new Date()); //此处获得格式化后的日期字符串

追问

sdf.format(new Date())这个返回是一个string类型的,Date类型的显示格式不能转换吗?只能以string类型的形式打印吗?

追答

直接打印日期就是Mon Jul 15 14:27:02 CST 2013 这样的格式吧

追问

我想直接打印出"yyyy-MM-dd "这种格式的可以吗?

追答

这不行 必须格式化后才能打印出这样的格式

参考技术B String returnValue = "";
private String datePattern = "yyyy/MM/dd";

SimpleDateFormat df = new SimpleDateFormat(datePattern);
returnValue = df.format(aDate);追问

我想问的是Date类型System.out.println(aDate);直接输出date类型,可以出现"yyyy/MM/dd"
这种格式吗?returnValue是string的

追答

不能。只能转换。

本回答被提问者和网友采纳
参考技术C SimpleDateFormat formator = new SimpleDateFormat(yyyy/MM/dd);
formator.format(new Date());追问

Date类型直接显示yyyy/MM/dd这种格式,可以吗?

追答

Java毕竟是米国人写的,Date默认的时间格式就是“Mon Jul 15 14:27:02 CST 2013”,必须要转一下

oracle中的to_date函数

在oracle中使用sqlplus对于一个date类型的字段为什么可以用select * from tbl where fdate=to_date('07JUL11'),不是应该写成to_date('07JUL11', 'DDMONYY')?难道DDMONYY是默认格式?谢谢!

不用管这个DDMONYY格式了
to_date现在功能很强,你的07JUL11是可以直接认出来的格式,要是你写070711也是可以的直接认对的
070711默认为11年7月7日,这个做例子不容易表达
比如,你写070611,oracle默认为是11年6月7日
你如果想表达的时间是7月6日,那就要加to_date了,to_date('070611','mmDDYY')才是7月6日
大概就是这样了
参考技术A 是的,
oracle 日期类型的默认格式可以从 nls_database_parameters中查到
参考技术B to_date('07JUL11')能直接用? 参考技术C to_date('07JUL11', 'DDMMYY')?

以上是关于java中,date类型,有的显示是Mon Jul 15 14:27:02 CST 2013,有的显示是2013/7/15?的主要内容,如果未能解决你的问题,请参考以下文章

SQL 开发人员中的日期转换返回错误

oracle中的to_date函数

java Date类型。

如何用Java把date类型转换成long数字?

4/3/2017 Mon.(Day02)

GMAIL API - 日期搜索(时区不清楚)