Java_各种时间格式转换大全

合集下载

java中日期格式的转换

java中日期格式的转换

Java中日期格式转换/*** 字符串转换为java.util.Date<br>* 支持格式为 yyyy.MM.dd G 'at' hh:mm:ss z 如 '2002-1-1 AD at 22:10:59 PSD'<br> * yy/MM/dd HH:mm:ss 如 '2002/1/1 17:55:00'<br>* yy/MM/dd HH:mm:ss pm 如 '2002/1/1 17:55:00 pm'<br>* yy-MM-dd HH:mm:ss 如 '2002-1-1 17:55:00' <br>* yy-MM-dd HH:mm:ss am 如 '2002-1-1 17:55:00 am' <br>* @param time String 字符串<br>* @return Date 日期<br>*/public static Date stringToDate(String time){SimpleDateFormat formatter;int tempPos=time.indexOf("AD") ;time=time.trim() ;formatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z");if(tempPos>-1){time=time.substring(0,tempPos)+"公元"+time.substring(tempPos+"AD".length());//chinaformatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z");}tempPos=time.indexOf("-");if(tempPos>-1&&(time.indexOf(" ")<0)){formatter = new SimpleDateFormat ("yyyyMMddHHmmssZ");}else if((time.indexOf("/")>-1) &&(time.indexOf(" ")>-1)){formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");}else if((time.indexOf("-")>-1) &&(time.indexOf(" ")>-1)){formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");}else if((time.indexOf("/")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");}else if((time.indexOf("-")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");}ParsePosition pos = new ParsePosition(0);java.util.Date ctime = formatter.parse(time, pos);return ctime;/*** 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss'(24小时制)<br> * 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'<br>* @param time Date 日期<br>* @return String 字符串<br>*/public static String dateToString(Date time){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");String ctime = formatter.format(time);return ctime;}/*** 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss a'(12小时制)<br> * 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'<br>* @param time Date 日期<br>* @param x int 任意整数如:1<br>* @return String 字符串<br>*/public static String dateToString(Date time,int x){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");String ctime = formatter.format(time);return ctime;}/***取系统当前时间:返回只值为如下形式*2002-10-30 20:24:39* @return String*/public static String Now(){return dateToString(new Date());}/***取系统当前时间:返回只值为如下形式*2002-10-30 08:28:56 下午*@param hour 为任意整数*@return String*/public static String Now(int hour){return dateToString(new Date(),hour);}/***取系统当前时间:返回值为如下形式*2002-10-30*@return String*/public static String getYYYY_MM_DD(){return dateToString(new Date()).substring(0,10);}/***取系统给定时间:返回值为如下形式*2002-10-30*@return String*/public static String getYYYY_MM_DD(String date){ return date.substring(0,10);}public static String getHour(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("H");String ctime = formatter.format(new Date());return ctime;}public static String getDay(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("d");String ctime = formatter.format(new Date());return ctime;}public static String getMonth(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("M");String ctime = formatter.format(new Date());return ctime;}public static String getYear(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("yyyy");String ctime = formatter.format(new Date());return ctime;}public static String getWeek(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("E");String ctime = formatter.format(new Date());return ctime;}在jsp页面中的日期格式和sqlserver中的日期格式不一样,怎样统一?在页面上显示输出时,用下面的函数处理一下public class DateUtil(){public static String fmtShortEnu(Date myDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");String strDate = formatter.format(myDate);return strDate;}}new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");new java.text.SimpleDateFormat("yyyy-MM-dd")建议还是把sqlserver的字段类型改成varchar的吧,用字符串处理可以完全按照自己的意愿处理,没有特殊的需求,不要使用date型字串日期格式转换用的API是SimpleDateFormat,它是属於java.text.SimpleDateFormat,所以请记得import进来!用法:SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");这一行最重要,它确立了转换的格式,yyyy是完整的西元年,MM是月份,dd是日期,至於HH:mm:ss就不需要我再解释了吧!ps:为什麽有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH 是24小时制,而hh是12小时制1.字串转日期:2002-10-8 15:30:22要把它转成日期,可以用Date date=sdf.parse("2002-10-8 15:30:22");2.日期转字串假如把今天的日期转成字串可用String datestr=sdf.format(new Date());这个字串的内容便类似2002-10-08 14:55:38透过这个API我们便可以随心所欲的将日期转成我们想要的字串格式,例如希望将日期输出成2002年10月08日,我们可以这麽写:SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");String datestr=sdf.format(new Date());datestr便会依照我们设定的格式输出//对日期格式的转换成("yyyy-MM-dd")格式的方法public java.sql.Date Convert(String str){java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd"); try{java.util.Date d = sdf.parse(str);java.sql.Date d1 = new java.sql.Date(d.getTime());return d1;}catch(Exception ex){ex.printStackTrace();return null;}}应用如下:ctmt.setDate(7,this.Convert(info.getManBirth())); // @DATETIME常用日期问题集锦1、获取服务器端当前日期:<%@ page import="java.util.Date"%><%Date myDate = new Date();%>2、获取当前年、月、日:<%@ page import="java.util.Date"%><%Date myDate = new Date();int thisYear = myDate.getYear() + 1900;//thisYear = 2003int thisMonth = myDate.getMonth() + 1;//thisMonth = 5int thisDate = myDate.getDate();//thisDate = 30%>3、按本地时区输出当前日期<%@ page import="java.util.Date"%><%Date myDate = new Date();out.println(myDate.toLocaleString());%>输出结果为:2003-5-304、获取数据库中字段名为”publish_time“、类型为Datetime的值<%@ page import="java.util.Date"%><%...连接数据库...ResultSet rs = ...Date sDate = rs.getDate("publish_time");%>[code]5、按照指定格式打印日期[code]<%@ page import="java.util.Date"%><%@ page import="java.text.DateFormat"%>Date dNow = new Date();SimpleDateFormat formatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");out.println("It is " + formatter.format(dNow));%>输出的结果为:It is 星期五 2003.05.30 at 11:30:46 上午 CST(更为详尽的格式符号请参看SimpleDateFormat类)6、将字符串转换为日期<%@ page import="java.util.Date"%><%@ page import="java.text.DateFormat"%><%String input = "1222-11-11";SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");Date t = null;try{t = formatter.parse(input);out.println(t);}catch(ParseException e){out.println("unparseable using " + formatter);}%>输出结果为:Fri Nov 11 00:00:00 CST 12227、计算日期之间的间隔<%@ page import="java.util.Date"%><%@ page import="java.text.DateFormat"%><%String input = "2003-05-01";SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");Date d1 = null;try{d1 = formatter.parse(input);}catch(ParseException e){out.println("unparseable using " + formatter);}Date d2 = new Date();long diff = d2.getTime() - d1.getTime();out.println("Difference is " + (diff/(1000*60*60*24)) + " days.");%>输出结果为:Difference is 29 days.8、日期的加减运算方法:用Calendar类的add()方法<%@ page import="java.util.*"%><%@ page import="java.text.*"%><%Calendar now = Calendar.getInstance();SimpleDateFormat formatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");out.println("It is now " + formatter.format(now.getTime()));now.add(Calendar.DAY_OF_YEAR,-(365*2));out.println("<br>");out.println("Two years ago was " + formatter.format(now.getTime()));%>输出结果为:It is now 星期五 2003.05.30 at 01:45:32 下午 CSTTwo years ago was 星期三 2001.05.30 at 01:45:32 下午 CST9、比较日期方法:用equals()、before()、after()方法<%@ page import="java.util.*"%><%@ page import="java.text.*"%><%DateFormat df = new SimpleDateFormat("yyy-MM-dd");Date d1 = df.parse("2000-01-01");Date d2 = df.parse("1999-12-31");String relation = null;if(d1.equals(d2))relation = "the same date as";else if(d1.before(d2))relation = "before";elserelation = "after";out.println(d1 +" is " + relation + ' ' + d2);%>输出结果为:Sat Jan 01 00:00:00 CST 2000 is after Fri Dec 31 00:00:00 CST 199910、记录一件事所花费的时间方法:调用两次System.getTimeMillis()方法,求差值<%@ page import="java.text.*"%><%long t0,t1;t0 = System.currentTimeMillis();out.println("Cyc starts at " + t0);int k = 0;for(int i =0;i<100000;i++){k += i;}t1 = System.currentTimeMillis();out.println("<br>");out.println("Cyc ends at " + t1);out.println("<br>");out.println("This run took " + (t1-t0) + "ms.");%>输出结果为:Cyc starts at 1054275312432Cyc ends at 1054275312442This run took 10ms.其它:如何格式化小数<%@ page import="java.text.*"%><%DecimalFormat df = new DecimalFormat(",###.00");double aNumber = 33665448856.6568975;String result = df.format(aNumber);out.println(result);%>输出结果为:33,665,448,856.66======================日期比较:在JAVA中日期的计算与比较可以使用Date和DateFormat来解决,下面是一段示例代码:import java.text.*;import java.util.*;public class Test{public static void main(String[] args){try{Date date=new Date();DateFormat df=DateFormat.getDateTimeInstance();String now=df.format(date);System.out.println("现在时间:"+now);System.out.println("现在时间是否在16:00之前:"+date.before(df.parse("2004-12-24 16:00:00")));}catch(ParseException e){System.out.print(e.getMessage());}}}。

JAVA常用日期格式处理

JAVA常用日期格式处理

* 取当前日期* @return 当前日期的字符串,如2002-12-12**/public static String today() {java.text.SimpleDateFormat formatter= new java.text.SimpleDateFormat("yyyy-MM-dd");java.util.Date currentTime_1 = new java.util.Date();String dateString = formatter.format(currentTime_1);return dateString;}/*** 取当前时间,* @return 当前时间,如:21:10:12**/public static String time() {java.text.SimpleDateFormat formatter= new java.text.SimpleDateFormat("HH:mm:ss");java.util.Date currentTime_1 = new java.util.Date();String dateString = formatter.format(currentTime_1);return dateString;}/*** 将java.util.date型按照指定格式转为字符串* @param d 源对象* @param sFormat ps* @return 如:2003-01-01*/private static String toString(java.util.Date d, String sFormat) { java.text.SimpleDateFormat formatter= new java.text.SimpleDateFormat(sFormat);String dateString = formatter.format(d);return dateString;}* 强制类型转换从串到日期* @param sDate 源字符串,采用yyyy-MM-dd格式* @param sFormat ps* @return 得到的日期对象* @throws ParseException*/public static java.util.Date parseDate(String sDate, String sFormat) throwsParseException {java.text.SimpleDateFormat formatter = null;java.util.Date utildate = null;formatter = new java.text.SimpleDateFormat(sFormat);utildate = formatter.parse(sDate);return utildate;}/*** 强制类型转换从串到时间戳* @param sDate 源串* @param sFormat 遵循格式* @return 取得的时间戳对象* @throws ParseException*/public static Timestamp parseTimestamp(String sDate, String sFormat) throwsParseException {java.text.SimpleDateFormat formatter = null;java.util.Date utildate = null;formatter = new java.text.SimpleDateFormat(sFormat);utildate = formatter.parse(sDate);java.sql.Timestamp tsdate = new java.sql.Timestamp(utildate.getTime());return tsdate;}/*** getCurDate 取当前日期* @return java.util.Date型日期**/public static java.util.Date getCurDate() {return (new java.util.Date());}/*** getCurTimestamp 取当前时间戳* @return java.sql.Timestamp**/public static java.sql.Timestamp getCurTimestamp() {java.util.Date today = new java.util.Date();java.sql.Timestamp ts = new java.sql.Timestamp(today.getTime()); return ts;}。

Java时间格式转换工具类

Java时间格式转换工具类

Java时间格式转换⼯具类把当前时间修改成指定时间//把当前时间修改成指定时间public String dateUtil(Integer seconds, String dateFormatPattern){Date date = new Date();Long millis = date.getTime() + seconds * 1000; //时间毫秒值SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormatPattern);String time = simpleDateFormat.format(millis);return time;}@Testpublic void dateTest(){String firstActualDate = dateUtil(-1200,"yyyy-MM-dd HH:mm"); //第⼀次实际到站时间点String secondActualDate = dateUtil(0,"yyyy-MM-dd HH:mm"); //第⼆次实际到站时间点, ps:第⼀次到站时间必须⼩于第⼆次到站时间点 String plan_startTime = dateUtil(86400,"yyyy-MM-dd HH:mm"); //计划发车开始时间String plan_endTime = dateUtil(345600,"yyyy-MM-dd HH:mm"); //计划到达时间String departureDate = dateUtil(0,"yyyy-MM-dd"); //搜索该计划发车班次仓位System.out.println(firstActualDate);System.out.println(secondActualDate);System.out.println(plan_startTime);System.out.println(plan_endTime);System.out.println(departureDate);}result:2018-04-24 18:582018-04-24 19:182018-04-25 19:182018-04-28 19:182018-04-24把时间转换成毫秒//把⽇期格式转换毫秒public Long dateToMillis( String date ){SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");Long time = null;try {time = simpleDateFormat.parse(date).getTime();} catch (ParseException e) {e.printStackTrace();}return time ;}@Testpublic void dateToMillisTest (){Long date = dateToMillis("2018-04-25 11:12");System.out.println(date);}result:1524625920000。

JAVA中日期转换和日期计算的方法

JAVA中日期转换和日期计算的方法

JAVA中⽇期转换和⽇期计算的⽅法 ⽇期的格式有很多形式,在使⽤过程中经常需要转换,下⾯是各种类型转换的使⽤例⼦以及⽇期计算⽅法的例⼦。

⼀、不同格式⽇期相互转换⽅法1public class TestDateConvertUtil {23public static void main(String[] args) throws ParseException {4// 获取当前时间5 Date date = new Date(); // 获取当前时间6long timestamp = System.currentTimeMillis(); // 获取当前时间戳78// ⽇期格式转换9 date2String(); // ⽇期转字符串10 string2Date(); // 字符串转⽇期11 date2Timestamp(); // ⽇期转时间戳12 timestamp2Date(); // 时间戳转⽇期13 cst2Date(); // CST格式转⽇期14 nonstandard2Date(); // ⾮标准格式转⽇期15 convertDateStr(); // ⽇期字符串格式转换16 date2Calendar(); // ⽇期转⽇历17 calendar2Date(); // ⽇历转⽇期18 }1920public static void date2String() {21 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");22 Date date = new Date();23 String dateStr = sdf.format(date);24 System.out.println(dateStr);25 }2627public static void string2Date() throws ParseException {28 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");29 String dateStr = "2018-05-16 19:30:20";30 Date date = sdf.parse(dateStr);31 System.out.println(date);32 }3334public static void date2Timestamp() {35 Date date = new Date();36 String timestamp = String.valueOf(date.getTime());37 System.out.println(timestamp);38 }3940public static void timestamp2Date() {41 String timestamp = "1526470220000";42 Date date = new Date(new Long(timestamp));43 System.out.println(date);44 }4546public static void cst2Date() throws ParseException {47 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", ); // 注意使⽤参数48 String cst = "Tue May 16 19:30:20 CST 2018";49 Date date = sdf.parse(cst);50 System.out.println(date);51 }5253public static void nonstandard2Date() throws ParseException {54 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");55 sdf.setLenient(false); // 设置严格验证⽇期56 String dateStr = "20180516";57 Date date = sdf.parse(dateStr);58 System.out.println(date);59 }6061public static void convertDateStr() throws ParseException {62 SimpleDateFormat sdfSource = new SimpleDateFormat("yyyyMMdd");63 SimpleDateFormat sdfTarget = new SimpleDateFormat("yyyy-MM-dd");64 String dateSource = "20180516";65 String dateTarget = sdfTarget.format(sdfSource.parse(dateSource));66 System.out.println(dateTarget);67 }6869public static void date2Calendar() {70 Date date = new Date();71 Calendar c = Calendar.getInstance();72 c.setTime(date);73 System.out.println(c);74 }7576public static void calendar2Date() {77 Calendar c = Calendar.getInstance();78 Date date = c.getTime();79 System.out.println(date);80 }81 } 例⼦中,setLenient⽅法默认值为true,意思为宽泛的⽇期格式校验,⽐如20180532这样的值转date类型,会⾃动变成20180601。

java中计算机自然语言格式的时间转换

java中计算机自然语言格式的时间转换

java中计算机自然语言格式的时间转换在Java中,可以使用`java.util.Date`和`java.util.Calendar`类来进行计算机自然语言格式的时间转换。

以下是一些参考内容:1. 将自然语言格式的时间转换为`Date`对象:```javaimport java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class ConvertTime {public static void main(String[] args) throws ParseException { String timeString = "2022-06-25 10:30:00";SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = dateFormat.parse(timeString);System.out.println(date);}}```在这个示例中,使用`SimpleDateFormat`类将字符串形式的时间`timeString`转换为`Date`对象`date`。

2. 将`Date`对象转换为自然语言格式的时间:```javaimport java.text.SimpleDateFormat;import java.util.Date;public class ConvertTime {public static void main(String[] args) {Date date = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String timeString = dateFormat.format(date);System.out.println(timeString);}}```在这个示例中,使用`SimpleDateFormat`类将`Date`对象`date`转换为字符串形式的时间`timeString`。

JAVA时间格式化处理

JAVA时间格式化处理

JA V A时间格式化处理1、通过MessageFormat转化String dateTime = MessageFormat.format("{0,date,yyyy-MM-dd-HH-mm:ss:ms}" ,new Object[] {new java.sql.Date(System.currentTimeMillis())});说明: yyyy-MM-dd-HH-mm:ss:ms 年yyyy 月MM 日dd 时(大写为24进制,小写为12进制) 分mm 秒ss 微妙ms2、修改数据库时用queryDataSet.setDate("dateField", new java.sql.Date(new java.util.Date().getTime())); queryDataSet.setDate("dateField", new java.sql.Date.valueOf("2005-05-03"));3、通过SimpleDateFormat 转化SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd"); //格式化当前系统日期String dateTime = dateFm.format(new java.util.Date());4、具体讨论1Java 语言的Calendar(日历),Date(日期), 和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分. 日期是商业逻辑计算一个关键的部分. 所有的开发者都应该能够计算未来的日期, 定制日期的显示格式, 并将文本数据解析成日期对象. 我们写了两篇文章, 这是第一篇, 我们将大概的学习日期, 日期格式, 日期的解析和日期的计算.我们将讨论下面的类:1、具体类(和抽象类相对)java.util.Date2、抽象类java.text.DateFormat 和它的一个具体子类,java.text.SimpleDateFormat3、抽象类java.util.Calendar 和它的一个具体子类,java.util.GregorianCalendar具体类可以被实例化, 但是抽象类却不能. 你首先必须实现抽象类的一个具体子类.Date 类从Java 开发包(JDK) 1.0 就开始进化, 当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年. 这些方法现在遭到了批评并且已经被转移到了Calendar类里去了, 我们将在本文中进一步讨论它. 这种改进旨在更好的处理日期数据的国际化格式. 就象在JDK 1.1中一样, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据, 表示的是从GMT(格林尼治标准时间)1970年, 1 月1日00:00:00这一刻之前或者是之后经历的毫秒数.一、创建一个日期对象让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. 这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间.//------------------------------------------------------import java.util.Date;public class DateExample1{public static void main(String[] args){// Get the system date/timeDate date = new Date();System.out.println(date.getTime());}}//------------------------------------------------------在星期六, 2001年9月29日, 下午大约是6:50的样子, 上面的例子在系统输出设备上显示的结果是1001803809710. 在这个例子中,值得注意的是我们使用了Date 构造函数创建一个日期对象, 这个构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期.那么, 现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了. 我们如何才能以一种用户明白的格式来显示这个日期呢? 在这里类java.text.SimpleDateFormat 和它的抽象基类java.text.DateFormat 就派得上用场了.二、日期数据的定制格式假如我们希望定制日期数据的格式, 比方星期六-9月-29日-2001年. 下面的例子展示了如何完成这个工作://------------------------------------------------------import java.text.SimpleDateFormat;import java.util.Date;public class DateExample2{public static void main(String[] args){SimpleDateFormat bartDateFormat =new SimpleDateFormat("EEEE-MMMM-dd-yyyy");Date date = new Date();System.out.println(bartDateFormat.format(date));}}//------------------------------------------------------只要通过向SimpleDateFormat 的构造函数传递格式字符串"EEE-MMMM-dd-yyyy", 我们就能够指明自己想要的格式. 你应该可以看见, 格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分. EEEE是星期, MMMM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式化的.传递"EE-MM-dd-yy"会显示Sat-09-29-01. 请察看Sun 公司的Web 站点获取日期格式化选项的完整的指示.三、将文本数据解析成日期对象假设我们有一个文本字符串包含了一个格式化了的日期对象, 而我们希望解析这个字符串并从文本日期数据创建一个日期对象. 我们将再次以格式化字符串"MM-dd-yyyy" 调用SimpleDateFormat类, 但是这一次, 我们使用格式化解析而不是生成一个文本日期数据. 我们的例子, 显示在下面, 将解析文本字符串"9-29-2001"并创建一个值为001736000000 的日期对象.//------------------------------------------------------import java.text.SimpleDateFormat;import java.util.Date;public class DateExample3{public static void main(String[] args){// Create a date formatter that can parse dates of// the form MM-dd-yyyy.SimpleDateFormat bartDateFormat =new SimpleDateFormat("MM-dd-yyyy");// Create a string containing a text date to be parsed.String dateStringToParse = "9-29-2001";try {// Parse the text version of the date.// We have to perform the parse method in a// try-catch construct in case dateStringToParse// does not contain a date in the format we are expecting.Date date = bartDateFormat.parse(dateStringToParse);// Now send the parsed date as a long value// to the system output.System.out.println(date.getTime());}catch (Exception ex) {System.out.println(ex.getMessage());}}}//------------------------------------------------------四、使用标准的日期格式化过程既然我们已经可以生成和解析定制的日期格式了, 让我们来看一看如何使用内建的格式化过程. 方法DateFormat.getDateTimeInstance() 让我们得以用几种不同的方法获得标准的日期格式化过程. 在下面的例子中, 我们获取了四个内建的日期格式化过程. 它们包括一个短的, 中等的, 长的, 和完整的日期格式.//------------------------------------------------------import java.text.DateFormat;import java.util.Date;public class DateExample4{public static void main(String[] args){Date date = new Date();DateFormat shortDateFormat =DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);DateFormat mediumDateFormat =DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);DateFormat longDateFormat =DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);DateFormat fullDateFormat =DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);System.out.println(shortDateFormat.format(date));System.out.println(mediumDateFormat.format(date));System.out.println(longDateFormat.format(date));System.out.println(fullDateFormat.format(date));}}//------------------------------------------------------注意我们在对getDateTimeInstance的每次调用中都传递了两个值. 第一个参数是日期风格, 而第二个参数是时间风格. 它们都是基本数据类型int(整型). 考虑到可读性, 我们使用了DateFormat 类提供的常量: SHORT, MEDIUM, LONG, 和FULL. 要知道获取时间和日期格式化过程的更多的方法和选项, 请看Sun 公司Web 站点上的解释.运行我们的例子程序的时候, 它将向标准输出设备输出下面的内容:9/29/01 8:44 PMSep 29, 2001 8:44:45 PMSeptember 29, 2001 8:44:45 PM EDTSaturday, September 29, 2001 8:44:45 PM EDT五、Calendar 类我们现在已经能够格式化并创建一个日期对象了, 但是我们如何才能设置和获取日期数据的特定部分呢, 比如说小时, 日, 或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类. 就如我们前面提到的那样, Calendar 类中的方法替代了Date 类中被人唾骂的方法.假设你想要设置, 获取, 和操纵一个日期对象的各个部分, 比方一个月的一天或者是一个星期的一天. 为了演示这个过程, 我们将使用具体的子类java.util.GregorianCalendar. 考虑下面的例子, 它计算得到下面的第十个星期五是13号.//------------------------------------------------------import java.util.GregorianCalendar;import java.util.Date;import java.text.DateFormat;public class DateExample5{public static void main(String[] args){DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);// Create our Gregorian Calendar.GregorianCalendar cal = new GregorianCalendar();// Set the date and time of our calendar// to the system&s date and timecal.setTime(new Date());System.out.println("System Date: " +dateFormat.format(cal.getTime()));// Set the day of week to FRIDAYcal.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.FRIDAY);System.out.println("After Setting Day of Week to Friday: " +dateFormat.format(cal.getTime()));int friday13Counter = 0;while (friday13Counter <= 10){// Go to the next Friday by adding 7 days.cal.add(GregorianCalendar.DAY_OF_MONTH, 7);// If the day of month is 13 we have// another Friday the 13th.if (cal.get(GregorianCalendar.DAY_OF_MONTH) == 13){friday13Counter++;System.out.println(dateFormat.format(cal.getTime()));}}}}//------------------------------------------------------在这个例子中我们作了有趣的函数调用:cal.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.FRIDAY);和:cal.add(GregorianCalendar.DAY_OF_MONTH, 7);set 方法能够让我们通过简单的设置星期中的哪一天这个域来将我们的时间调整为星期五. 注意到这里我们使用了常量DAY_OF_WEEK 和FRIDAY来增强代码的可读性. add 方法让我们能够在日期上加上数值. 润年的所有复杂的计算都由这个方法自动处理.我们这个例子的输出结果是:System Date: Saturday, September 29, 2001当我们将它设置成星期五以后就成了:Friday, September 28, 2001Friday, September 13, 2002Friday, December 13, 2002Friday, June 13, 2003Friday, February 13, 2004Friday, August 13, 2004Friday, May 13, 2005Friday, January 13, 2006Friday, October 13, 2006Friday, April 13, 2007Friday, July 13, 2007Friday, June 13, 2008六、时间掌握在你的手里有了这些Date 和Calendar 类的例子, 你应该能够使用java.util.Date, java.text.SimpleDateFormat, 和java.util.GregorianCalendar 创建许多方法了.5、具体讨论2这里只讨论java中对日期的几个简单类:1. java.util.Date2. java.text.DateFormat(Abstract),java.text.SimpleDateFormat3. java.util.Calendar(Abstract),java.util。

java中时间格式的转换

java中时间格式的转换

1.将日期类型转换为格式的字符串类型java.util.Date中的日期Date Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String time=sdf.format(date);2.将字符串类型的转换为指定格式的日期类型(java.util.Date)String time = "2009-7-29 14:28:12";DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = df.parse(time);这里需要抛出ParseException异常若将java.util.Date类型转换成java.sql.Date时,只需添加一行代码java.sql.Date sqlDate = new java.sql.Date(date.getTime());3.使用java.sql.Timestamp在java程序中rs.getDate()时获取日期的时、分、秒String str = "";String format="yyyy-MM-dd HH:mm:ss";try {//这里与数据库的连接已经省略,获得PreparedStatement的对象psmtResultSet rs = psmt.executeQuery();while(rs.next()){Timestamp ts = rs.getTimestamp("pdate");SimpleDateFormat sdf = new SimpleDateFormat(format);str = sdf.format(ts);System.out.println(str);}} catch (SQLException e) {e.printStackTrace(); } ......SimpleDateFormat的用法://SimpleDateFormat中的parse方法可以把String型的字符串转换成特定格式的date类型import java.text.*;import java.util.*;public class TestDate {public static void main(String[] args) {String dStr = "2001.12.12-08.23.21";Date d = null;SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH.mm.ss");try {d = sdf.parse(dStr);} catch (ParseException pe) {System.out.println(pe.getMessage());}System.out.println(d);System.out.println(d.getTime());}}//下面的format方法可以将date型的数据转换成特定的String型字符串public class FormatDateTime {public static void main(String[] args) {SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒E ");SimpleDateFormat myFmt4=new SimpleDateFormat("一年中的第D 天一年中第w个星期一月中第W个星期在一天中k时z时区");Date now=new Date();System.out.println(myFmt.format(now));System.out.println(myFmt1.format(now));System.out.println(myFmt2.format(now));System.out.println(myFmt3.format(now));System.out.println(myFmt4.format(now));System.out.println(now.toGMTString());System.out.println(now.toLocaleString());System.out.println(now.toString());}}效果:2004年12月16日17时24分27秒04/12/16 17:242004-12-16 17:24:272004年12月16日17时24分27秒星期四一年中的第351 天一年中第51个星期一月中第3个星期在一天中17时CST时区16 Dec 2004 09:24:27 GMT2004-12-16 17:24:27Thu Dec 16 17:24:27 CST 2004下面是个JavaBean:public class FormatDateTime {public static String toLongDateString(Date dt){SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss 秒E ");return myFmt.format(dt);}public static String toShortDateString(Date dt){SimpleDateFormat myFmt=new SimpleDateFormat("yy年MM月dd日HH时mm分");return myFmt.format(dt);}public static String toLongTimeString(Date dt){SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");return myFmt.format(dt);}public static String toShortTimeString(Date dt){SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd HH:mm");return myFmt.format(dt);}public static void main(String[] args) {Date now=new Date();System.out.println(FormatDateTime.toLongDateString(now));System.out.println(FormatDateTime.toShortDateString(now));System.out.println(FormatDateTime.toLongTimeString(now));System.out.println(FormatDateTime.toShortTimeString(now));}}调用的main 测试结果:2004年12月16日17时38分26秒星期四04年12月16日17时38分17 38 26 096504/12/16 17:3824小时制时间显示:public class Datetime {public static void main(String args[]){java.util.Date current=new java.util.Date();java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String c=sdf.format(current);System.out.println(c);}}12小时制时间显示:public class Datetime {public static void main(String args[]){java.util.Date current=new java.util.Date();java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String c=sdf.format(current);System.out.println(c);}}。

java日期时间转换工具类

java日期时间转换工具类

java⽇期时间转换⼯具类java⽇期时间转换⼯具类1.实现⽇期格式和类型转换2.获得星期,时,分,秒3.⽇期⽐较4.⽣成账号和流⽔号Java代码1. import java.text.SimpleDateFormat;2. import java.util.Calendar;3. import java.util.Date;4. import java.util.regex.Pattern;5.6. /**7. * ⽇期时间转换⼯具类8. */9. public class DateUtil {10.11. public static String FILE_NAME = "MMddHHmmssSSS";12. public static String DEFAULT_PATTERN = "yyyy-MM-dd";13. public static String DIR_PATTERN = "yyyy/MM/dd/";14. public static String TIMESTAMP_PATTERN = "yyyy-MM-dd HH:mm:ss";15. public static String TIMES_PATTERN = "HH:mm:ss";16. public static String NOCHAR_PATTERN = "yyyyMMddHHmmss";17.18. /**19. * 获取当前时间戳20. *21. * @param date22. *23. * @return24. */25. public static String formatDefaultFileName() {26. return formatDateByFormat(new Date(), FILE_NAME);27. }28.29. /**30. * ⽇期转换为字符串31. *32. * @param date33. * ⽇期34. * @param format35. * ⽇期格式36. * @return 指定格式的⽇期字符串37. */38. public static String formatDateByFormat(Date date, String format) {39. String result = "";40. if (date != null) {41. try {42. SimpleDateFormat sdf = new SimpleDateFormat(format);43. result = sdf.format(date);44. } catch (Exception ex) {45. ex.printStackTrace();46. }47. }48. return result;49. }50.51. /**52. * 转换为默认格式(yyyy-MM-dd)的⽇期字符串53. *54. * @param date55. *56. * @return57. */58. public static String formatDefaultDate(Date date) {59. return formatDateByFormat(date, DEFAULT_PATTERN);60. }61.62. /**63. * 转换为⽬录格式(yyyy/MM/dd/)的⽇期字符串64. *65. * @param date66. *67. * @return68. */69. public static String formatDirDate(Date date) {70. return formatDateByFormat(date, DIR_PATTERN);71. }72.73. /**74. * 转换为完整格式(yyyy-MM-dd HH:mm:ss)的⽇期字符串75. *76. * @param date77. *78. * @return79. */80. public static String formatTimesTampDate(Date date) {81. return formatDateByFormat(date, TIMESTAMP_PATTERN);82. }83.84. /**85. * 转换为时分秒格式(HH:mm:ss)的⽇期字符串86. *87. * @param date88. *89. * @return90. */91. public static String formatTimesDate(Date date) {92. return formatDateByFormat(date, TIMES_PATTERN);93. }94.95. /**96. * 转换为时分秒格式(HH:mm:ss)的⽇期字符串97. *98. * @param date99. *100. * @return101. */102. public static String formatNoCharDate(Date date) {103. return formatDateByFormat(date, NOCHAR_PATTERN); 104. }105.106. /**107. * ⽇期格式字符串转换为⽇期对象108. *109. * @param strDate110. * ⽇期格式字符串111. * @param pattern112. * ⽇期对象113. * @return114. */115. public static Date parseDate(String strDate, String pattern) { 116. try {117. SimpleDateFormat format = new SimpleDateFormat(pattern); 118. Date nowDate = format.parse(strDate);119. return nowDate;120. } catch (Exception e) {121. e.printStackTrace();122. }123. return null;124. }125.126. /**127. * 字符串转换为默认格式(yyyy-MM-dd)⽇期对象128. *129. * @param date130. *131. * @return132. *133. * @throws Exception134. */135. public static Date parseDefaultDate(String date) {136. return parseDate(date, DEFAULT_PATTERN);137. }138.139. /**140. * 字符串转换为完整格式(yyyy-MM-dd HH:mm:ss)⽇期对象141. *142. * @param date143. *144. * @return145. *146. * @throws Exception147. */148. public static Date parseTimesTampDate(String date) { 149. return parseDate(date, TIMESTAMP_PATTERN); 150. }151.152. /**153. * 获得当前时间154. *155. * @return156. */157. public static Date getCurrentDate() {158. Calendar calendar = Calendar.getInstance();159. return calendar.getTime();160. }161.162. /**163. * sql Date 转 util Date164. *165. * @param date166. * java.sql.Date⽇期167. * @return java.util.Date168. */169. public static Date parseUtilDate(java.sql.Date date) { 170. return date;171. }172.173. /**174. * util Date 转 sql Date175. *176. * @param date177. * java.sql.Date⽇期178. * @return179. */180. public static java.sql.Date parseSqlDate(Date date) { 181. return new java.sql.Date(date.getTime());182. }183.184. /**185. * 获取年份186. *187. * @param date188. *189. * @return190. */191. public static int getYear(Date date) {192. Calendar c = Calendar.getInstance();193. c.setTime(date);194. return c.get(Calendar.YEAR);195. }196.197. /**198. * 获取⽉份199. *200. * @param date201. *202. * @return203. */204. public static int getMonth(Date date) {205. Calendar c = Calendar.getInstance();206. c.setTime(date);207. return c.get(Calendar.MONTH) + 1;208. }209.210. /**211. * 获取星期212. *213. * @param date214. *215. * @return216. */217. public static int getWeek(Date date) {218. Calendar c = Calendar.getInstance();219. c.setTime(date);220. int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); 221. dayOfWeek = dayOfWeek - 1;222. if (dayOfWeek == 0) {223. dayOfWeek = 7;224. }225. return dayOfWeek;226. }227.228. /**229. * 获取⽇期(多少号)230. *231. * @param date232. *233. * @return234. */235. public static int getDay(Date date) {236. Calendar c = Calendar.getInstance();237. c.setTime(date);238. return c.get(Calendar.DAY_OF_MONTH);239. }240.241. /**242. * 获取当前时间(⼩时)243. *244. * @param date245. *246. * @return247. */248. public static int getHour(Date date) {249. Calendar c = Calendar.getInstance();250. c.setTime(date);251. return c.get(Calendar.HOUR_OF_DAY);252. }253.254. /**255. * 获取当前时间(分)256. *257. * @param date258. *259. * @return260. */261. public static int getMinute(Date date) {262. Calendar c = Calendar.getInstance();263. c.setTime(date);264. return c.get(Calendar.MINUTE);265. }266.267. /**268. * 获取当前时间(秒)269. *270. * @param date271. *272. * @return273. */274. public static int getSecond(Date date) {275. Calendar c = Calendar.getInstance();276. c.setTime(date);277. return c.get(Calendar.SECOND);278. }279.280. /**281. * 获取当前毫秒282. *283. * @param date284. *285. * @return286. */287. public static long getMillis(Date date) {288. Calendar c = Calendar.getInstance();289. c.setTime(date);290. return c.getTimeInMillis();291. }292.293. /**294. * ⽇期增加295. *296. * @param date297. * Date298. *299. * @param day300. * int301. *302. * @return Date303. */304. public static Date addDate(Date date, int day) {305. java.util.Calendar c = java.util.Calendar.getInstance();306. c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000); 307. return c.getTime();308. }309.310. /**311. * ⽇期相减(返回天数)312. *313. * @param date314. * Date315. *316. * @param date1317. * Date318. *319. * @return int 相差的天数320. */321. public static int diffDate(Date date, Date date1) {322. return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000)); 323. }324.325. /**326. * ⽇期相减(返回秒值)327. *328. * @param date329. * Date330. * @param date1331. * Date332. * @return int333. * @author334. */335. public static Long diffDateTime(Date date, Date date1) {336. return (Long) ((getMillis(date) - getMillis(date1)) / 1000);337. }338.339. private static String[] randomValues = new String[] { "0", "1", "2", "3", 340. "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g",341. "h", "i", "j", "k", "l", "m", "n", "u", "t", "s", "o", "x", "v",342. "p", "q", "r", "w", "y", "z" };343.344. public static String getRandomNumber(int lenght) {345. StringBuffer str = new StringBuffer();346. for (int i = 0; i < lenght; i++) {347. Double number = Math.random() * (randomValues.length - 1); 348. str.append(randomValues[number.intValue()]);349. }350. return str.toString();351. }352.353. /**354. * ⽣成账号355. *356. * @param acount357. * @return358. */359. public static String nextAcounnt(String acount) {360. String newAcc = "";361. if (Integer.parseInt(acount) < 10000) {362. Integer newAc = Integer.parseInt(acount) + 1;363. if (newAc < 1000) {364. int count = String.valueOf(newAc).length();365. if (count == 1) {366. newAcc = "000" + newAc;367. } else if (count == 2) {368. newAcc = "00" + newAc;369. } else if (count == 3) {370. newAcc = "0" + newAc;371. }372. } else {373. newAcc = String.valueOf(newAc);374. }375. } else {376. newAcc = acount;377. }378. return newAcc;379. }380.381. public static boolean isNumeric1(String str) {382. if (str != null && !"".equals(str) && str.length()<=9) {383. Pattern pattern = pile("[0-9]*");384. return pattern.matcher(str).matches();385. } else {386. return false;387. }388. }389.390. /**391. * ⽣成流⽔号392. *393. * @param t394. * 流⽔号位数395. * @return 流⽔号396. */397. public static String getSequenceNumber(int t) {398. Date d = new Date();399. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss"); 400. String str = sdf.format(d);401. String haomiao = String.valueOf(System.nanoTime());402. str = str + haomiao.substring(haomiao.length() - 6, haomiao.length()); 403. return str.substring(str.length() - t, str.length());404. }405. }。

java2个时间格式间转换

java2个时间格式间转换

java2个时间格式间转换(原创实用版)目录1.Java 中时间格式的表示2.时间格式的转换方法3.具体转换实例正文在 Java 编程语言中,时间格式的表示主要依赖于`java.time`包中的`LocalDateTime`和`ZonedDateTime`类。

这两个类分别用于表示不带时区的本地日期时间以及带时区的日期时间。

在实际编程中,我们常常需要对这些时间格式进行转换。

接下来,我们就来学习一下如何在 Java 中进行时间格式的转换。

一、Java 中时间格式的表示在 Java 中,时间格式主要通过`DateTimeFormatter`类进行表示。

`DateTimeFormatter`类提供了一系列的静态方法,用于创建不同格式的日期时间表示。

例如,我们可以使用`DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")`创建一个表示“年 - 月-日时:分:秒”的格式。

二、时间格式的转换方法在 Java 中,我们可以通过`DateTimeFormatter`类的`parse()`和`format()`方法进行时间格式的转换。

`parse()`方法用于将字符串格式的时间转换为`LocalDateTime`或`ZonedDateTime`对象,而`format()`方法则用于将`LocalDateTime`或`ZonedDateTime`对象转换为字符串格式的时间。

以下是一个简单的转换实例:```javaimport java.time.LocalDateTime;import java.time.ZoneId;import java.time.format.DateTimeFormatter;public class TimeFormatConversion {public static void main(String[] args) {// 创建一个表示“年 - 月-日时:分:秒”的DateTimeFormatterDateTimeFormatter formatter =DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// 定义一个字符串格式的时间String dateTimeStr = "2022-01-01 12:30:45";// 使用 parse() 方法将字符串格式的时间转换为LocalDateTime 对象LocalDateTime localDateTime =LocalDateTime.parse(dateTimeStr, formatter);// 使用 format() 方法将 LocalDateTime 对象转换为字符串格式的时间String convertedDateTimeStr =localDateTime.format(formatter);// 输出转换后的时间System.out.println("转换后的时间:" + convertedDateTimeStr);}}```三、具体转换实例以下是一个具体的转换实例,演示如何将一个表示“年 - 月-日时:分:秒”的时间格式转换为“时分:秒.毫秒”格式:```javaimport java.time.LocalDateTime;import java.time.format.DateTimeFormatter;public class TimeFormatConversion {public static void main(String[] args) {// 创建一个表示“年 - 月-日时:分:秒”的DateTimeFormatterDateTimeFormatter formatter =DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// 定义一个字符串格式的时间String dateTimeStr = "2022-01-01 12:30:45";// 使用 parse() 方法将字符串格式的时间转换为LocalDateTime 对象LocalDateTime localDateTime =LocalDateTime.parse(dateTimeStr, formatter);// 使用 format() 方法将 LocalDateTime 对象转换为字符串格式的时间String convertedDateTimeStr =localDateTime.format(DateTimeFormatter.ofPattern("HH:mm:ss.SSS" ));// 输出转换后的时间System.out.println("转换后的时间:" + convertedDateTimeStr);}}```运行上述代码,输出结果为:```转换后的时间:12:30:45.000```以上就是 Java 中时间格式间转换的相关知识。

Java时间格式转换大全

Java时间格式转换大全

Java时间格式转换⼤全---恢复内容开始---import java.text.*;import java.util.Calendar;public class VeDate {/*** 获取现在时间** @return返回时间类型 yyyy-MM-dd HH:mm:ss*/public static Date getNowDate() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);ParsePosition pos = new ParsePosition(8);Date currentTime_2 = formatter.parse(dateString, pos);return currentTime_2;}/*** 获取现在时间** @return返回短时间格式 yyyy-MM-dd*/DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");DateFormat format 2= new SimpleDateFormat("yyyy年MM⽉dd⽇ HH时mm分ss秒");Date date = null;String str = null;// String转Datestr = "2007-1-18";try {date = format1.parse(str);data = format2.parse(str);} catch (ParseException e) {e.printStackTrace();}/*** 获取现在时间** @return返回字符串格式 yyyy-MM-dd HH:mm:ss*/public static String getStringDate() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);return dateString;}/*** 获取现在时间** @return返回短时间字符串格式yyyy-MM-dd*/public static String getStringDateShort() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");String dateString = formatter.format(currentTime);return dateString;}/*** 获取时间⼩时:分;秒 HH:mm:ss** @return*/public static String getTimeShort() {SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");Date currentTime = new Date();String dateString = formatter.format(currentTime);return dateString;}/*** 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss** @param strDate* @return*/public static Date strToDateLong(String strDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");ParsePosition pos = new ParsePosition(0);}/*** 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss** @param dateDate* @return*/public static String dateToStrLong(java.util.Date dateDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = formatter.format(dateDate);return dateString;}/*** 将短时间格式时间转换为字符串 yyyy-MM-dd** @param dateDate* @param k* @return*/public static String dateToStr(java.util.Date dateDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");String dateString = formatter.format(dateDate);return dateString;}/*** 将短时间格式字符串转换为时间 yyyy-MM-dd** @param strDate* @return*/public static Date strToDate(String strDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");ParsePosition pos = new ParsePosition(0);Date strtodate = formatter.parse(strDate, pos);return strtodate;}/*** 得到现在时间** @return*/public static Date getNow() {Date currentTime = new Date();return currentTime;}/*** 提取⼀个⽉中的最后⼀天** @param day* @return*/public static Date getLastDate(long day) {Date date = new Date();long date_3_hm = date.getTime() - 3600000 * 34 * day;Date date_3_hm_date = new Date(date_3_hm);return date_3_hm_date;}/*** 得到现在时间** @return字符串 yyyyMMdd HHmmss*/public static String getStringToday() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss"); String dateString = formatter.format(currentTime);return dateString;}/*** 得到现在⼩时*/public static String getHour() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = formatter.format(currentTime);String hour;hour = dateString.substring(11, 13);return hour;}/*** 得到现在分钟*public static String getTime() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);String min;min = dateString.substring(14, 16);return min;}/*** 根据⽤户传⼊的时间表⽰格式,返回当前时间的格式如果是yyyyMMdd,注意字母y不能⼤写。

简单的时间格式转换工具类(java)

简单的时间格式转换工具类(java)

简单的时间格式转换⼯具类(java)import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;import java.util.TimeZone;/*** Date⽇期公共类***/public class DateUtils {/*** 返回当前⽇期Date类型** @return*/public static Date getCurDate() {return new Date();}/*** Date⽇期类型转化为Timestamp类型如果参数为空返回null** @param date* @return*/public static Timestamp getTimestamp(Date date) {if (date == null)return null;else {return new Timestamp(date.getTime());}}/*** 获取当前Timestamp类型时间** @return*/public static Timestamp getCurTimestamp() {return new Timestamp(new Date().getTime());}/*** 字符串⽇期转化为“yyy-MM-dd”格式的Date⽇期类型如果字符串为null则返回null** @param dateStr* @return*/public static Date formateDate(String dateStr) {if (dateStr == null || "".equals(dateStr.trim()))return null;SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");try {Date date = sdf.parse(dateStr);return date;} catch (ParseException e) {e.printStackTrace();}return null;}/*** 字符串⽇期去除两端空⽩并返回Timestamp类型⽇期如果为null或者“”则返回null** @param tsStr* @return*/public static Timestamp formateTimeStamp(String tsStr) {if (tsStr == null || "".equals(tsStr.trim()))return null;try {Timestamp ts = Timestamp.valueOf(tsStr.trim());return ts;} catch (Exception e) {e.printStackTrace();}return null;}/*** Date⽇期类型转化为“yyyy-MM-dd”格式的字符串⽇期如果为空则返回null** @param date* @return*/public static String getDateStr(Date date) {if (date == null)return null;SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String dateStr = sdf.format(date);return dateStr;}public static String getTime2Str(Date date){if (date == null)return null;SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");String dateStr = sdf.format(date);return dateStr;}/*** Timestamp⽇期类型转化为“yyyy-MM-dd HH:mm:ss”格式的字符串⽇期如果为空则返回null ** @param ts* @return*/public static String getTimestampStr(Timestamp ts) {if (ts == null)return null;SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String tsStr = sdf.format(ts);return tsStr;}/*** Timestamp⽇期类型转化为“MM-dd HH:mm”格式的字符串⽇期如果为空则返回null** @param ts* @return*/public static String formatTimestamp2Str(Timestamp ts) {if (ts == null)return null;SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm");String tsStr = sdf.format(ts);return tsStr;}/*** Date⽇期类型转化为“MM-dd HH:mm”格式的字符串⽇期如果为空则返回null** @param ts* @return*/public static String formatTimestamp2Str(Date ts) {if (ts == null)return null;SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm");String tsStr = sdf.format(ts);return tsStr;}/*** Date⽇期类型转化为“yyyy-MM-dd HH:mm:ss”格式的字符串⽇期如果为空则返回null** @param date* @return*/public static String getTimestampStr(Date date) {if (date == null)return null;SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String tsStr = sdf.format(date);return tsStr;}/*** 返回Date⽇期类型的起始时间,返回类型是Timestamp并包含秒表 2014-01-21 00:00:00.0 ** @param date* @return*/public static Timestamp getStartTimestampByDate(Date date) {if (date == null)return null;Calendar c1 = Calendar.getInstance();c1.setTime(date);c1.set(Calendar.HOUR_OF_DAY, 0);c1.set(Calendar.MINUTE, 0);c1.set(Calendar.SECOND, 0);c1.set(LISECOND, 0);return new Timestamp(c1.getTimeInMillis());}/*** 返回Date⽇期类型的结束时间,返回类型是Timestamp并包含秒表 2014-01-21 23:59:59.999 ** @param date* @return*/public static Timestamp getEndTimestampByDate(Date date) {if (date == null)return null;Calendar c1 = Calendar.getInstance();c1.setTime(date);c1.set(Calendar.HOUR_OF_DAY, 23);c1.set(Calendar.MINUTE, 59);c1.set(Calendar.SECOND, 59);c1.set(LISECOND, 999);return new Timestamp(c1.getTimeInMillis());}/*** ⽇期增加并返回Date⽇期类型** @param curDate* @param count* @return*/public static Date dateAdd(Date curDate, Integer count) {if (curDate == null || count == null)return null;return new Date(curDate.getTime() + count * 24 * 60 * 60 * 1000L);}/*** ⽇期增加并返回Timestamp⽇期类型** @param curTimestamp* @param count* @return*/public static Timestamp timeAddSecond(Timestamp curTimestamp, Integer count) {if (curTimestamp == null || count == null)return null;return new Timestamp(curTimestamp.getTime() + count * 1000);}/*** 两个⽇期相差⼏个⽉** @param curDate* @param oldDate* @return*/public static int dateDiffMont(Date curDate, Date oldDate) {if (curDate == null || oldDate == null)return 0;if (oldDate.getTime() >= curDate.getTime()) {return 0;}Calendar c = Calendar.getInstance();c.setTime(curDate);int curYear = c.get(Calendar.YEAR);int curMonth = c.get(Calendar.MONTH);c.setTime(oldDate);int oldYear = c.get(Calendar.YEAR);int oldMonth = c.get(Calendar.MONTH);int result;if (curYear == oldYear) {result = curMonth - oldMonth;// 两个⽇期相差⼏个⽉,即⽉份差} else {result = 12 * (curYear - oldYear) + curMonth - oldMonth;// 两个⽇期相差⼏个⽉,即⽉份差 }return result;}/*** 判断两个⽇期的⼤⼩是返回true 否则返回false** @param date1* @param date2* @return*/public static boolean compare(Date date1, Date date2) {if (date1 == null || date2 == null)return false;Calendar c1 = Calendar.getInstance();c1.setTime(date1);c1.set(Calendar.HOUR_OF_DAY, 0);c1.set(Calendar.MINUTE, 0);c1.set(Calendar.SECOND, 0);c1.set(LISECOND, 0);Calendar c2 = Calendar.getInstance();c2.setTime(date2);c2.set(Calendar.HOUR_OF_DAY, 0);c2.set(Calendar.MINUTE, 0);c2.set(Calendar.SECOND, 0);c2.set(LISECOND, 0);if (c1.getTimeInMillis() >= c2.getTimeInMillis())return true;elsereturn false;}/*** 返回当前⽇期当前⽉的第⼀天返回类型是Timestamp 格式是“2014-01-01 00:00:00.0”** @param curDate* @return*/public static Timestamp getFirstDayOfMonth(Date curDate) {if (curDate == null)return null;Calendar c = Calendar.getInstance();c.setTime(curDate);c.set(Calendar.HOUR_OF_DAY, 0);c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);c.set(LISECOND, 0);c.set(Calendar.DATE, 1);// 设为当前⽉的1号System.out.println(new Timestamp(c.getTimeInMillis()));return new Timestamp(c.getTimeInMillis());}/*** 返回当前⽇期下个⽉的第⼀天返回类型是Timestamp 格式是“2014-02-01 00:00:00.0”** @param curDate* @return*/public static Timestamp getFirstDayOfNextMonth(Date curDate) {if (curDate == null)return null;Calendar c = Calendar.getInstance();c.setTime(curDate);c.set(Calendar.HOUR_OF_DAY, 0);c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);c.set(LISECOND, 0);c.set(Calendar.DATE, 1);// 设为当前⽉的1号c.add(Calendar.MONTH, 1);//System.out.println(new Timestamp(c.getTimeInMillis()));return new Timestamp(c.getTimeInMillis());}/*** 返回指定年份的第⼀天返回类型是Timestamp 格式是“2013-01-01 00:00:00.0”** @param yearStr* ("参数格式:2013")* @return*/public static Timestamp getFirstDayOfYear(String yearStr) {if (yearStr == null)return null;Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, new Integer(yearStr));c.set(Calendar.MONTH, 0); //c.set(Calendar.DATE, 1);c.set(Calendar.HOUR_OF_DAY, 0);c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);c.set(LISECOND, 0);System.out.println(new Timestamp(c.getTimeInMillis()));return new Timestamp(c.getTimeInMillis());}/*** 返回指定年份的最后⼀天返回类型是Timestamp 格式是“2013-12-31 23:59:59.999” ** @param yearStr* ("参数格式:2013")* @return*/public static Timestamp getLastDayOfYear(String yearStr) {if (yearStr == null)return null;Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, new Integer(yearStr));c.set(Calendar.MONTH, 11); //c.set(Calendar.DATE, 31);c.set(Calendar.HOUR_OF_DAY, 23);c.set(Calendar.MINUTE, 59);c.set(Calendar.SECOND, 59);c.set(LISECOND, 999);System.out.println(new Timestamp(c.getTimeInMillis()));return new Timestamp(c.getTimeInMillis());}/*** 返回本季度的第⼀天返回类型是Timestamp 格式是“2013-10-01 00:00:00.0”** @param yearStr* (例如参数:2013)* @param qurStr* (例如第XX季度:4)* @return*/public static Timestamp getFirstDayOfQuarter(String yearStr, String qurStr) {if (yearStr == null)return null;if (qurStr == null)return null;String qurTmp = "";if ("1".equals(qurStr))qurTmp = "0";else if ("2".equals(qurStr))qurTmp = "3";else if ("3".equals(qurStr))qurTmp = "6";else if ("4".equals(qurStr))qurTmp = "9";Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, new Integer(yearStr));c.set(Calendar.MONTH, new Integer(qurTmp)); //c.set(Calendar.DATE, 1);c.set(Calendar.HOUR_OF_DAY, 0);c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);c.set(LISECOND, 0);System.out.println(new Timestamp(c.getTimeInMillis()));return new Timestamp(c.getTimeInMillis());}/*** 返回指定年、⽉份的第⼀天返回类型是Timestamp 格式是“2013-04-01 00:00:00.0” ** @param yearStr* (例如参数:2013)* @param monthStr* (例如参数:4)* @return*/public static Timestamp getFirstDayOfMonth(String yearStr, String monthStr) {if (yearStr == null)return null;if (monthStr == null)return null;Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, new Integer(yearStr));c.set(Calendar.MONTH, new Integer(monthStr) - 1); //c.set(Calendar.DATE, 1);c.set(Calendar.HOUR_OF_DAY, 0);c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);c.set(LISECOND, 0);System.out.println(new Timestamp(c.getTimeInMillis()));return new Timestamp(c.getTimeInMillis());}/*** 返回当前⽇期的上个⽉的当前时间段返回类型Timestamp 格式:”2013-12-21 12:15:45.096“ ** @param endTime* (例如参数:2014-01-21)* @return*/public static Timestamp getFirstDayOfPreMonth(Timestamp endTime) {Calendar c = Calendar.getInstance();c.setTime(new Date(endTime.getTime()));System.out.println(c.getTime());int y = c.get(Calendar.YEAR);int m = c.get(Calendar.MONTH) - 1;System.out.println(y);System.out.println(m);if (m == -1) {y = y - 1;m = 11;}c.set(Calendar.YEAR, y);c.set(Calendar.MONTH, m);return new Timestamp(c.getTimeInMillis());}/*** 返回上⼀年的第⼀个⽉的第⼀天返回类型Timestamp 格式:2013-01-01 00:00:00.0** @param curDate* @return*/public static Timestamp getPrevYearFirstDayOfMonth(Date curDate) {if (curDate == null)return null;Calendar c = Calendar.getInstance();c.setTime(curDate);c.set(Calendar.HOUR_OF_DAY, 0);c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);c.set(LISECOND, 0);c.set(Calendar.DATE, 1);// 设为当前⽉的1号c.add(Calendar.YEAR, -1);//System.out.println(new Timestamp(c.getTimeInMillis()));return new Timestamp(c.getTimeInMillis());}/*** 返回上⼀年的第⼆个⽉的第⼀天返回类型Timestamp 格式:2013-02-01 00:00:00.0** @param curDate* @return*/public static Timestamp getPrevYearFirstDayOfNextMonth(Date curDate) {if (curDate == null)return null;Calendar c = Calendar.getInstance();c.setTime(curDate);c.set(Calendar.HOUR_OF_DAY, 0);c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);c.set(LISECOND, 0);c.set(Calendar.DATE, 1);// 设为当前⽉的1号c.add(Calendar.MONTH, 1);//c.add(Calendar.YEAR, -1);//System.out.println(new Timestamp(c.getTimeInMillis()));return new Timestamp(c.getTimeInMillis());}/*** 返回字符串⽇期返回类型:string 参数类型:Timestamp 返回格式:yyyy.MM** @param tmp* @return*/public static String cvtTimestampToStr(Timestamp tmp) {if (tmp == null)return "";SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM");String timeStr = sdf.format(new Date(tmp.getTime()));System.out.println(timeStr);return timeStr;}/*** 返回字符串⽇期返回类型:string 参数类型:Date 返回格式:yyyy.MM** @param tmp* @return*/public static String cvtDateToStr(Date tmp) {if (tmp == null)return "";SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM");String timeStr = sdf.format(tmp);System.out.println(timeStr);return timeStr;}/*** 返回两个⽇期相差多少秒返回类型Integer 参数类型:Timestamp** @param startTime* @param endTime* @return*/public static Integer diffTimestamp4Second(Timestamp startTime,Timestamp endTime) {if (startTime == null || endTime == null)return 0;Integer diff = new Long((endTime.getTime() - startTime.getTime()) / 1000).intValue();return diff;}/*** 获取当前时间格式为yyyy-MM-dd HH:mm:ss的字符串* @return*/public static String getCurrentYYYYMMDDHHMMSS() {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", ); formatter.setTimeZone(TimeZone.getTimeZone("GMT+8"));Date currTime = new Date();String thisTime = new String(formatter.format(currTime));return thisTime;}/*** 获取当前时间格式为yyyy-MM-dd HH:mm:ss的字符串* @param inputDate* @return*/public static String getYYYYMMDDHHMMSS(Date inputDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", ); formatter.setTimeZone(TimeZone.getTimeZone("GMT+8"));String thisTime = new String(formatter.format(inputDate));return thisTime;}/*** 获取当前时间格式为yyyy-MM-ddHHmmssSSS的字符串* @return*/public static String getCurrentYYYYMMDDHHMMssSSS() {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-ddHHmmssSSS", ); formatter.setTimeZone(TimeZone.getTimeZone("GMT+8"));Date currTime = new Date();String thisTime = new String(formatter.format(currTime));return thisTime;}/*** 获取当前时间格式为yyyyMMddHHmmssSSS的字符串* @return*/public static String getCurrentYYYYMMDDHHMMssSSSFormat() {SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSS", ); formatter.setTimeZone(TimeZone.getTimeZone("GMT+8"));Date currTime = new Date();String thisTime = new String(formatter.format(currTime));return thisTime;}/*** 获取当前时间格式为yyyyMMddHHmmssSSS的字符串* @return*/public static String getCurrentYYYYMMDDFormat() {SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd", );formatter.setTimeZone(TimeZone.getTimeZone("GMT+8"));Date currTime = new Date();String thisTime = new String(formatter.format(currTime));return thisTime;}/*** 获取当前时间格式为yyyy-MM-dd的字符串* @return*/public static String getCurrentYYYYMMDD() {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", );formatter.setTimeZone(TimeZone.getTimeZone("GMT+8"));Date currTime = new Date();String thisTime = new String(formatter.format(currTime));return thisTime;}/*** 获取当前时间格式为yyyyMMddHHmmss的字符串* @return*/public static String getCurrent_yyyyMMddHHmmss() {SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss", ); formatter.setTimeZone(TimeZone.getTimeZone("GMT+8"));Date currTime = new Date();String thisTime = new String(formatter.format(currTime));return thisTime;}/*** yyyyMMddHHmmss转换为yyyy-MM-dd HH:mm:ss 的字符串*/public static String getyMdHms(String str){StringBuffer sb =new StringBuffer();String s = str.trim();if(!s.isEmpty()){if(s.length()>3){sb.append(s.substring(0, 4));}if(s.length()>5){sb.append("-");sb.append(s.substring(4, 6));}if(s.length()>7){sb.append("-");sb.append(s.substring(6, 8));}if(s.length()>9){sb.append(" ");sb.append(s.substring(8, 10));}if(s.length()>11){sb.append(":");sb.append(s.substring(10, 12));}if(s.length()>13){sb.append(":");sb.append(s.substring(12, 14));}}return sb.toString();}}。

java日期互转:LocalDateTime、String、TimeStamp、Long、。。。

java日期互转:LocalDateTime、String、TimeStamp、Long、。。。

java⽇期互转:LocalDateTime、String、TimeStamp、Long、。

由于java版本的迭代,⼀个使⽤java开发的项⽬中可能出现多种⽇期对象,例如LocalDateTime、LocalDate、Date,不像C#只有⼀个DateTime,因此在各种⽇期格式或者对象之间的转换显得有点复杂,总是记不住,在需要⽤到时总是需要依靠搜索引擎,有点浪费时间,所以特意把常⽤的转换场景总结如下:1、 LocalDateTime转为String、TimeStamp、Long、Instant、 DateSystem.out.println("----------------LocalDateTime----------------");//LocalDateTime -> StringString localDateTimeToString = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));System.out.println("LocalDateTime -> String: " + localDateTimeToString);//LocalDateTime -> TimeStampTimestamp localDateTimeToTimeStamp = Timestamp.valueOf(LocalDateTime.now());System.out.println("LocalDateTime -> TimeStamp: " + localDateTimeToTimeStamp);//LocalDateTime -> LongLong localDateTimeToLong = Timestamp.valueOf(LocalDateTime.now()).getTime();System.out.println("LocalDateTime -> Long: " + localDateTimeToLong);//LocalDateTime -> InstantInstant localDateTimeToInstant = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant();System.out.println("LocalDateTime -> Instant: " + localDateTimeToInstant);//LocalDateTime -> DateDate LocalDateTimeToDate = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());System.out.println("LocalDateTime -> Date: " + LocalDateTimeToDate);2、String转为LocalDateTime、 DateSystem.out.println("----------------String----------------");//String -> LocalDateTimeLocalDateTime stringToLocalDateTime =LocalDateTime.parse("2018-03-11 15:30:11", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));System.out.println("String -> LocalDateTime: " + stringToLocalDateTime);//String -> Datetry {Date stringToDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2018-03-11 15:30:11");System.out.println("String -> Date: " + stringToDate);} catch (ParseException ex) {}3、Timestamp转为LocalDateTime、 DateSystem.out.println("---------------Timestamp-----------------");//Timestamp -> LocalDateTimeLocalDateTime timeStampToLocalDateTime =LocalDateTime.ofInstant(new Timestamp(1520754566856L).toInstant(), ZoneId.systemDefault());System.out.println("Timestamp -> LocalDateTime: " + timeStampToLocalDateTime);//Timestamp -> DateDate timestampToDate = Date.from(new Timestamp(1520754566856L).toInstant());System.out.println("Timestamp -> Date: " + timestampToDate);4、Long转为LocalDateTime、 DateSystem.out.println("---------------Long-----------------");//Long -> LocalDateTimeLocalDateTime longToLocalDateTime =LocalDateTime.ofInstant(Instant.ofEpochMilli(1520754566856L), ZoneId.systemDefault());System.out.println("Long -> LocalDateTime: " + longToLocalDateTime);//Long -> DateDate longToDate = new Date(1520754566856L);System.out.println("Long -> Date: " + longToDate);5、Instant转为LocalDateTime、 DateSystem.out.println("----------------Instant----------------");//Instant -> LocalDateTimeLocalDateTime instantToLocalDateTime = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault());System.out.println("Instant -> LocalDateTime: " + instantToLocalDateTime);//Instant -> DateDate instantToDate = Date.from(Instant.now());System.out.println("Instant -> Date: " + instantToDate);6、Date转为LocalDateTime、String、TimeStamp、Long、InstantSystem.out.println("----------------Date----------------");//Date -> StringString dateToString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());System.out.println("Date -> String: " + dateToString);//Date -> LocalDateTimeLocalDateTime dateToLocalDateTime = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()); System.out.println("Date -> LocalDateTime: " + dateToLocalDateTime);//Date -> TimestampTimestamp dateToTimestamp = new Timestamp(new Date().getTime());System.out.println("Date -> Timestamp: " + dateToTimestamp);//Date -> LongLong dateToLong = new Date().getTime();System.out.println("Date -> Long: " + dateToLong);//Date -> InstantInstant dateToInstant = new Date().toInstant();System.out.println("Date -> Instant: " + dateToInstant);。

java常用日期类型转换

java常用日期类型转换

java常⽤⽇期类型转换import java.math.BigDecimal;import java.math.RoundingMode;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import ng.StringUtils;import org.joda.time.DateTime;import org.joda.time.LocalDate;import org.joda.time.format.DateTimeFormat;/*** @author Simon Lv* @since 2012-6-10*/public class DateUtils {public static final String YYMMDD = "yyMMdd";public static final String YYYYMMDD = "yyyyMMdd";public static final String PATTERN_DATETIME = "yyyy-MM-dd HH:mm:ss";public static final String PATTERN_DATETIME_M = "yyyy-MM-dd HH:mm";public static final String PATTERN_DATE = "yyyy-MM-dd";public static final String PATTERN_MONTH = "yyyy-MM";public static final String YEAR = "yyyy";public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");public static DateTime toDateTime(String dateTime) {if (StringUtils.isBlank(dateTime)) {return null;}return DateTimeFormat.forPattern(PATTERN_DATETIME).parseDateTime(dateTime);}public static DateTime strToDateTime(String dateTime) {if (StringUtils.isBlank(dateTime)) {return null;}return DateTimeFormat.forPattern(PATTERN_DATE).parseDateTime(dateTime);}public static String toString(DateTime dateTime) {return dateTime.toString(PATTERN_DATETIME);}public static String dateToString(DateTime dateTime) {return dateTime.toString(YEAR);}public static String dateTimeToString(DateTime dateTime) {return dateTime.toString(PATTERN_DATE);}public static String toString(String dateTime, String pattern) {return new DateTime(dateTime).toString(pattern);}public static String toString(LocalDate localDate, String pattern) {if (localDate == null) {return null;}return localDate.toString(pattern);}public static String todayToString() {return new LocalDate().toString(YYMMDD);}public static String todayToStringYear() {return new LocalDate().toString(YEAR);}public static String todayToString2() {return new LocalDate().toString(YYYYMMDD);}public static String todayToYYYYMMDDStr() {return new LocalDate().toString(PATTERN_DATE);}public static String todayToChinaStr() {Calendar calendar =Calendar.getInstance();StringBuffer sb = new StringBuffer();.append(calendar.get(Calendar.MONTH)+1).append("⽉").append(calendar.get(Calendar.DAY_OF_MONTH)).append("⽇").append(calendar.get(Calendar.HOUR)).append("时").append(calendar.get(Calendar.MINUTE)).append("分");return sb.toString();}/*** 将微信消息中的CreateTime转换成标准格式的时间(yyyy-MM-dd HH:mm:ss) ** @param createTime* @return*/public static String getNormalDateFromWebChat(String createTime) {Long msgCreateTime = Long.parseLong(createTime) * 1000;return DATE_FORMAT.format(new Date(msgCreateTime));}/*** 将long型时间格式转换为字符格式** @return返回字符串格式 yyyy-MM-dd HH:mm:ss*/public static String long2LongString(long date){if(date == -99){return "-";}SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATETIME);return sdf.format(new Date(date));}public static String long2DateString(Long date, String pattern){if(date == null || date.longValue() ==0){return "-";}if(date.longValue() == -99){return "";}SimpleDateFormat sdf = new SimpleDateFormat(pattern);return sdf.format(new Date(date));}/*** 将long型时间格式转换为字符格式** @return返回字符串格式 yyyy-MM-dd HH:mm*/public static String long2DatemString(long date){if(date == -99){return "-";}SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATETIME_M);return sdf.format(new Date(date));}/*** 将long型时间格式转换为字符格式** @param date* @return返回字符串格式 yyyy-MM-dd*/public static String long2String(Long date){if(null == date || date == -99 || date == 0){return "-";}SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATE);return sdf.format(new Date(date));}/**** YYYY-MM-DD* @param dateTime* @return*/public static long str2Long(String dateTime){if (StringUtils.isBlank(dateTime)) {return 0l;}Date date = string2Date(dateTime);return date.getTime();}* yyyy-MM-dd HH:mm:ss* @param dateTime* @return*/public static long strSLong(String dateTime){if (StringUtils.isBlank(dateTime)) {return 0l;}Date date = string2Datetime(dateTime);return date.getTime();}/*** 将DateTime型时间格式转换为long** @param date* @return*/public static long date2Long(DateTime dateTime){if (dateTime == null) {return 0l;}String date1 = dateTimeToString(dateTime);Date date = string2Date(date1);return date.getTime();}/*** 获得精确到秒的⽇期类型* yyyy-MM-dd HH:mm:ss* @param date* @return*/public static Date string2Datetime(String date) {Date retValue = null ;SimpleDateFormat sdf= new SimpleDateFormat(PATTERN_DATETIME);try{retValue = sdf.parse(date);}catch(Exception e){e.printStackTrace();}return retValue;}/*** 获得⽇期类型** @param date* @return*/public static Date string2Date(String date) {Date retValue = null ;SimpleDateFormat sdf= new SimpleDateFormat(PATTERN_DATE);try{retValue = sdf.parse(date);}catch(Exception e){e.printStackTrace();}return retValue;}/*** ⽇期转换为Long** @param dateTime* @return*/public static long str2MonthLong(String dateTime){if (StringUtils.isEmpty(dateTime)) {return 0l;}Date date = string2MonthDate(dateTime);return date != null ? date.getTime() : 0l;}/*** 获得⽉份类型** @param date* @returnpublic static Date string2MonthDate(String date) {Date retValue = null ;SimpleDateFormat sdf= new SimpleDateFormat(PATTERN_MONTH);try{retValue = sdf.parse(date);}catch(Exception e){e.printStackTrace();}return retValue;}/**** YYYY-MM-DD* @param date* @return*/public static int getDayOfWeek(String date){String[] dateArr = date.split("-");int year = Integer.parseInt(dateArr[0]);int month = Integer.parseInt(dateArr[1]);int day= Integer.parseInt(dateArr[2]);Calendar calendar = Calendar.getInstance();//获得⼀个⽇历calendar.set(year, month-1, day);//设置当前时间,⽉份是从0⽉开始计算int number = calendar.get(Calendar.DAY_OF_WEEK);//星期表⽰1-7,是从星期⽇开始,return number;}/*** 获取指定⽇期⼀年前时间** @return返回long格式*/public static long getChainYear(long date){Calendar cal = Calendar.getInstance();cal.setTime(new Date(date));cal.add(Calendar.YEAR,-1);return cal.getTime().getTime();}/**** 时间差,分钟* @param startTime* @param endTime* @return*/public static String timeDifference(long startTime,long endTime ){long timeDifferenceSecond = endTime - startTime;double dmin = ((double)timeDifferenceSecond/(60*1000));BigDecimal bd = BigDecimal.valueOf(dmin);DecimalFormat df = new DecimalFormat("0");df.setRoundingMode(RoundingMode.HALF_UP);return df.format(bd);}public static Date getTimesWeekMoningDate(int h,int m,int s){Calendar cal = Calendar.getInstance();int year = cal.get(Calendar.YEAR);int monday = cal.get(Calendar.MONDAY);int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);cal.set(year, monday,dayOfMonth, h, m, s);cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);return cal.getTime();}/*** 本周开始时间 yyyy-MM-dd HH:mm:ss 0点* @return*/public static String getTimesWeekMorning() {SimpleDateFormat formatter = new SimpleDateFormat(PATTERN_DATETIME);String dateString = formatter.format(getTimesWeekMoningDate(0,0,0));return dateString;}/*** 本周结束时间 yyyy-MM-dd HH:mm:ss 24点* @return*/public static String getTimesWeekNight() {Calendar cal = Calendar.getInstance();cal.setTime(getTimesWeekMoningDate(0,0,0));cal.add(Calendar.DAY_OF_WEEK, 7);SimpleDateFormat formatter = new SimpleDateFormat(PATTERN_DATETIME);String dateString = formatter.format(cal.getTime());return dateString;}/**** 本⽉开始时间0点* @return*/public static String getTimesMonthMorning() {Calendar cal = Calendar.getInstance();cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));SimpleDateFormat formatter = new SimpleDateFormat(PATTERN_DATETIME);String dateString = formatter.format(cal.getTime());return dateString;}/**** 本⽉结束时间24点* @return*/public static String getTimesMonthNight() {Calendar cal = Calendar.getInstance();int year = cal.get(Calendar.YEAR);int monday = cal.get(Calendar.MONDAY);int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);cal.set(year, monday,dayOfMonth, 0, 0, 0);cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));cal.set(Calendar.HOUR_OF_DAY, 24);SimpleDateFormat formatter = new SimpleDateFormat(PATTERN_DATETIME);String dateString = formatter.format(cal.getTime());return dateString;}}。

Java时区转换及时间格式

Java时区转换及时间格式

Java时区转换及时间格式本文介绍Java API 中 Date, Calendar, TimeZone和DateFormat的使用,以及不同时区时间相互转化的方法和原理。

问题描述:向处于不同时区的服务器发请求时需要考虑时区转换的问题。

譬如,服务器位于东八区(北京时间,GMT+8:00),而身处东四区的用户想要查询当天的销售记录。

则需把东四区的“今天”这个时间范围转换为服务器所在时区的时间范围。

Tips1. GMT时间:即格林威治平时(Greenwich Mean Time)。

平太阳时是与视太阳时对应的,由于地球轨道非圆形,运行速度岁地球与太阳距离改变而出现变化,因此视太阳时欠缺均匀性。

为了纠正这种不均匀性,天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。

平太阳时就是指经修订之后的视太阳时。

在格林威治子午线上的平太阳时称为世界时(UTC),又叫格林威治平时(GMT)。

类Date表示特定的瞬间,精确到毫秒。

获得一个表示当前时间的Date对象有两种方式:Java代码1. 1. Date date = new Date();2. 2. Date date = Calendar.getInstance().getTime();Date对象本身所存储的毫秒数可以通过date.getTime()方法得到;该函数返回自1970年1月1日 00:00:00 GMT以来此对象表示的毫秒数。

Calendar的getInstance()方法有参数为TimeZone和Locale的重载,可以使用指定时区和语言环境获得一个日历。

无参则使用默认时区和语言环境获得日历。

TimeZone表示时区偏移量,本质上以毫秒数保存与GMT的差值。

获取TimeZone可以通过时区ID,如"America/New_York",也可以通过GMT+/-hh:mm来设定。

例如北京时间可以表示为GMT+8:00。

TimeZone.getRawOffset()方法可以用来得到当前时区的标准时间到GMT的偏移量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java_各种时间格式转换大全/*** 字符串转换为java.util.Date<br>* 支持格式为yyyy.MM.dd G 'at' hh:mm:ss z 如'2002-1-1 AD at 22:10:59 PSD'<br>* yy/MM/dd HH:mm:ss 如'2002/1/1 17:55:00'<br>* yy/MM/dd HH:mm:ss pm 如'2002/1/1 17:55:00 pm'<br>* yy-MM-dd HH:mm:ss 如'2002-1-1 17:55:00' <br>* yy-MM-dd HH:mm:ss am 如'2002-1-1 17:55:00 am' <br>* @param time String 字符串<br>* @return Date 日期<br>*/public static Date stringToDate(String time){SimpleDateFormat formatter;int tempPos=time.indexOf("AD") ;time=time.trim() ;formatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z");if(tempPos>-1){time=time.substring(0,tempPos)+"公元"+time.substring(tempPos+"AD".length());//china formatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z");}tempPos=time.indexOf("-");if(tempPos>-1&&(time.indexOf(" ")<0)){formatter = new SimpleDateFormat ("yyyyMMddHHmmssZ");}else if((time.indexOf("/")>-1) &&(time.indexOf(" ")>-1)){formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");}else if((time.indexOf("-")>-1) &&(time.indexOf(" ")>-1)){formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");}else if((time.indexOf("/")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");}else if((time.indexOf("-")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");}ParsePosition pos = new ParsePosition(0);java.util.Date ctime = formatter.parse(time, pos);return ctime;}/*** 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss'(24小时制)<br>* 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'<br>* @param time Date 日期<br>* @return String 字符串<br>*/public static String dateToString(Date time){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");String ctime = formatter.format(time);return ctime;}/*** 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss a'(12小时制)<br>* 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'<br>* @param time Date 日期<br>* @param x int 任意整数如:1<br>* @return String 字符串<br>*/public static String dateToString(Date time,int x){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");String ctime = formatter.format(time);return ctime;}/***取系统当前时间:返回只值为如下形式*2002-10-30 20:24:39* @return String*/public static String Now(){return dateToString(new Date());}/***取系统当前时间:返回只值为如下形式*2002-10-30 08:28:56 下午*@param hour 为任意整数*@return String*/public static String Now(int hour){return dateToString(new Date(),hour);}/***取系统当前时间:返回值为如下形式*2002-10-30*@return String*/public static String getYYYY_MM_DD(){return dateToString(new Date()).substring(0,10); }/***取系统给定时间:返回值为如下形式*2002-10-30*@return String*/public static String getYYYY_MM_DD(String date){ return date.substring(0,10);}public static String getHour(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("H");String ctime = formatter.format(new Date());return ctime;}public static String getDay(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("d");String ctime = formatter.format(new Date());return ctime;}public static String getMonth(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("M");String ctime = formatter.format(new Date());return ctime;}public static String getYear(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("yyyy");String ctime = formatter.format(new Date());return ctime;}public static String getWeek(){SimpleDateFormat formatter;formatter = new SimpleDateFormat ("E");String ctime = formatter.format(new Date());return ctime;}在jsp页面中的日期格式和sqlserver中的日期格式不一样,怎样统一?在页面上显示输出时,用下面的函数处理一下public class DateUtil(){public static String fmtShortEnu(Date myDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");String strDate = formatter.format(myDate);return strDate;}}new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");new java.text.SimpleDateFormat("yyyy-MM-dd")建议还是把sqlserver的字段类型改成varchar的吧,用字符串处理可以完全按照自己的意愿处理,没有特殊的需求,不要使用date型字串日期格式转换用的API是SimpleDateFormat,它是属於java.text.SimpleDateFormat,所以请记得import进来!用法:SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");这一行最重要,它确立了转换的格式,yyyy是完整的西元年,MM是月份,dd是日期,至於HH:mm:ss就不需要我再解释了吧!ps:为什麽有的格式大写,有的格式小写,那是怕避免混淆,例如MM 是月份,mm是分;HH是24小时制,而hh是12小时制1.字串转日期:2002-10-8 15:30:22要把它转成日期,可以用Date date=sdf.parse("2002-10-8 15:30:22");2.日期转字串假如把今天的日期转成字串可用String datestr=sdf.format(new Date());这个字串的内容便类似2002-10-08 14:55:38透过这个API我们便可以随心所欲的将日期转成我们想要的字串格式,例如希望将日期输出成2002年10月08日,我们可以这麽写:SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日"); String datestr=sdf.format(new Date());datestr便会依照我们设定的格式输出//对日期格式的转换成("yyyy-MM-dd")格式的方法public java.sql.Date Convert(String str){java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");try{java.util.Date d = sdf.parse(str);java.sql.Date d1 = new java.sql.Date(d.getTime());return d1;}catch(Exception ex){ex.printStackTrace();&nbs。

相关文档
最新文档