Java时间格式转换大全

合集下载

解决时间格式的转换方法

解决时间格式的转换方法

解决时间格式的转换方法摘要:1.引言2.时间格式转换方法a.日期转时间b.时间转日期c.日期时间转特定格式d.特定格式转日期时间3.常见问题及解答4.总结正文:【引言】在日常生活和工作中,我们时常需要对时间格式进行转换,例如将日期转换为特定格式、将时间戳转换为日期等。

本文将介绍几种常见的时间格式转换方法,以帮助大家更轻松地处理时间相关问题。

【时间格式转换方法】1.日期转时间要将日期转换为时间,我们可以使用如Python、Java等编程语言提供的日期类库。

以Python为例,可以使用`datetime`模块中的`date`和`time`类。

以下是一个简单的示例:```pythonfrom datetime import date, timedate_str = "2021-08-01"date_obj = date.fromisoformat(date_str)time_str = "12:30:45"time_obj = time.fromisoformat(time_str)print(date_obj)print(time_obj)```2.时间转日期将时间转换为日期,可以采用类似的方法。

以下是一个示例:```pythonfrom datetime import date, timetime_str = "12:30:45"time_obj = time.fromisoformat(time_str)date_str =date.toisoformat(time_obj.replace(tzinfo=timezone.utc).astimezone(time zone.local).timetuple())print(date_str)```3.日期时间转特定格式要将日期时间转换为特定格式,可以使用`strftime`方法。

以下是一个示例:```pythonfrom datetime import datetimedate_time_obj = datetime(2021, 8, 1, 12, 30, 45)formatted_date_time =date_time_obj.strftime("%Y-%m-%d %H:%M:%S")print(formatted_date_time)```4.特定格式转日期时间将特定格式的字符串转换为日期时间,可以采用`strptime`方法。

JAVA处理日期时间常用方法

JAVA处理日期时间常用方法

JA V A处理日期时间常用方法:java.util.CalendarCalendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期提供了一些方法。

瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970 年 1 月1 日的00:00:00。

000,格里高利历的偏移量.例:Calendar cal = Calendar。

getInstance(;//使用默认时区和语言环境获得一个日历。

cal。

add(Calendar.DAY_OF_MONTH, -1;//取当前日期的前一天。

cal。

add(Calendar。

DAY_OF_MONTH, +1;//取当前日期的后一天。

//通过格式化输出日期java.text.SimpleDateFormat format = new java.text。

SimpleDateFormat(”yyyy-MM—dd";System。

out.println("Today is:”+format。

format(Calendar.getInstance(.getTime (;System。

out.println("yesterday is:"+format.format(cal.getTime(;得到2007—12-25日期: Calendar calendar = new GregorianCalendar(2007,11, 25,0,0,0;Date date = calendar.getTime(;System。

out.println("2007 Christmasis:”+format.format(date;//java月份是从0—11,月份设置时要减1。

//GregorianCalendar构造方法参数依次为:年,月—1,日,时,分,秒。

JAVA格式化日期、时间的方法

JAVA格式化日期、时间的方法

JAVA格式化⽇期、时间的⽅法使⽤ DateFormat 格式化⽇期、时间DateFormat 也是⼀个抽象类,它也提供了如下⼏个类⽅法⽤于获取 DateFormat 对象。

getDateInstance():返回⼀个⽇期格式器,它格式化后的字符串只有⽇期,没有时间。

该⽅法可以传⼊多个参数,⽤于指定⽇期样式和 Locale 等参数;如果不指定这些参数,则使⽤默认参数。

getTimeInstance():返回⼀个时间格式器,它格式化后的字符串只有时间,没有⽇期。

该⽅法可以传⼊多个参数,⽤于指定时间样式和 Locale 等参数;如果不指定这些参数,则使⽤默认参数。

getDateTimeInstance():返回⼀个⽇期、时间格式器,它格式化后的字符串既有⽇期,也有时间。

该⽅法可以传⼊多个参数,⽤于指定⽇期样式、时间样式和 Locale 等参数;如果不指定这些参数,则使⽤默认参数。

上⾯三个⽅法可以指定⽇期样式、时间样式参数,它们是的4个静态常量:FULL、LONG、MEDIUM 和 SHORT,通过这4个样式参数可以控制⽣成的格式化字符串。

看如下例⼦程序。

import java.util.*;import java.text.*;import static java.text.DateFormat.*;public class DateFormatTest {public static void main(String[] args) throws ParseException {// 需要被格式化的时间Date dt = new Date();// 创建两个Locale,分别代表中国、美国Locale[] locales = { Locale.CHINA, };DateFormat[] df = new DateFormat[16];// 为上⾯两个Locale创建16个DateFormat对象for (int i = 0; i < locales.length; i++) {df[i * 8] = DateFormat.getDateInstance(SHORT, locales[i]);df[i * 8 + 1] = DateFormat.getDateInstance(MEDIUM, locales[i]);df[i * 8 + 2] = DateFormat.getDateInstance(LONG, locales[i]);df[i * 8 + 3] = DateFormat.getDateInstance(FULL, locales[i]);df[i * 8 + 4] = DateFormat.getTimeInstance(SHORT, locales[i]);df[i * 8 + 5] = DateFormat.getTimeInstance(MEDIUM, locales[i]);df[i * 8 + 6] = DateFormat.getTimeInstance(LONG, locales[i]);df[i * 8 + 7] = DateFormat.getTimeInstance(FULL, locales[i]);}for (int i = 0; i < locales.length; i++) {String tip = i == 0 ? "----中国⽇期格式----" : "----美国⽇期格式----";System.out.println(tip);System.out.println("SHORT格式的⽇期格式:" + df[i * 8].format(dt));System.out.println("MEDIUM格式的⽇期格式:" + df[i * 8 + 1].format(dt));System.out.println("LONG格式的⽇期格式:" + df[i * 8 + 2].format(dt));System.out.println("FULL格式的⽇期格式:" + df[i * 8 + 3].format(dt));System.out.println("SHORT格式的时间格式:" + df[i * 8 + 4].format(dt));System.out.println("MEDIUM格式的时间格式:" + df[i * 8 + 5].format(dt));System.out.println("LONG格式的时间格式:" + df[i * 8 + 6].format(dt));System.out.println("FULL格式的时间格式:" + df[i * 8 + 7].format(dt));}}}上⾯程序共创建了16个 DateFormat 对象,分别为中国、美国两个 Locale 各创建8个 DateFormat 对象,分别是 SHORT、MEDIUM、LONG、FULL 四种样式的⽇期格式器、时间格式器。

date类型转年月日格式

date类型转年月日格式

date类型转年月日格式如何将日期类型转换为年月日格式[导语]日期类型是编程中常见的一种数据类型,它表示一个特定的日期和时间。

在某些情况下,我们需要将日期类型转换为特定的格式,例如年月日格式。

本文将为您介绍如何一步步将日期类型转换为年月日格式。

[第一步:了解日期类型]在开始转换之前,我们需要先了解日期类型。

常见的日期类型有Date、DateTime和Timestamp。

在不同的编程语言中,日期类型的表示方式可能会有些差异。

在本文中,我们以Java为例进行讲解。

在Java中,日期类型通常使用java.util.Date类来表示。

[第二步:获取日期类型对象]要进行日期格式转换,首先我们需要获得一个日期类型的对象。

可以通过不同的方式来获取日期类型对象。

例如,可以使用系统的当前日期和时间来创建一个新的日期对象,或者从数据库中获取日期类型的数据。

下面是一个示例代码,演示如何获取一个日期类型对象:javaimport java.util.Date;public class DateConversionExample {public static void main(String[] args) {Date currentDate = new Date();System.out.println("当前日期和时间:" + currentDate);}}在这个示例中,我们使用了java.util.Date类的无参构造方法创建了一个新的日期对象currentDate,并通过System.out.println()方法将其打印出来。

通过运行这段代码,我们可以获取到当前的日期和时间。

[第三步:格式化日期类型]获取到日期类型对象后,我们可以使用SimpleDateFormat类来对日期进行格式化。

SimpleDateFormat是Java中常用的日期格式化类,它提供了多种格式化模式,可以根据需要选择不同的模式来转换日期格式。

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中timestamp 时间戳转换时间的方法

java中timestamp 时间戳转换时间的方法

java中timestamp 时间戳转换时间的方法(实用版4篇)目录(篇1)1.java中timestamp时间戳转换时间的方法2.时间戳的概念和作用3.java中常用的时间戳转换方法4.时间戳转换方法的优缺点5.总结正文(篇1)一、java中timestamp时间戳转换时间的方法在Java中,timestamp时间戳是一种常用的时间表示方式,可以记录时间的起始点。

时间戳通常用于记录事件发生的时间,例如日志记录、数据传输等。

在Java中,可以使用以下方法将timestamp转换为可读的时间格式:1.DateFormat类:DateFormat类可以将timestamp转换为可读的时间格式。

例如,可以使用以下代码将timestamp转换为Date对象:Date date = new Date(timestamp);2.Calendar类:Calendar类可以获取当前时间的各个部分,例如年、月、日、时、分、秒等。

可以使用以下代码将timestamp转换为Calendar 对象:Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(timestamp);3.SimpleDateFormat类:SimpleDateFormat类可以根据指定的格式将timestamp转换为可读的时间格式。

例如,可以使用以下代码将timestamp转换为String类型的时间格式:String time = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(new Date(timestamp));二、时间戳的概念和作用时间戳是指计算机系统自动生成的一个序列号,用于记录时间的起始点。

在计算机系统中,时间戳通常用于记录事件发生的时间,例如日志记录、数据传输等。

时间戳可以用于比较两个时间点之间的差异,例如计算两个事件之间的时间间隔。

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中日期格式的转换
return ctime;
}
public static String getYear(){
SimpleDateFormat formatter;
formatter = new SimpleDateFormat ("yyyy");
String ctime = formatter.format(new Date());
1.字串转日期:
2002-10-8 15:30:22要把它转成日期,可以用
Date date=sdf.parse("2002-10-8 15:30:22");
2.日期转字串
假如把今天的日期转成字串可用
String datestr=sdf.format(new Date());
String ctime = formatter.format(time);
return ctime;
}
/**
*取系统当前时间:返回只值为如下形式
*2002-10-30 20:24:39
* @return String
*/
public static String Now(){
return ctime;
}
public static String getWeek(){
SimpleDateFormat formatter;
formatter = new SimpleDateFormat ("E");
String ctime = formatter.format(new Date());
formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");

java中各种时间格式的转化

java中各种时间格式的转化

java中各种时间格式的转化时间和日期中常用到的几个类:java.util.Date,java.util.Calendar,java.util.GregorainCalendar,java.text.DateFormat,java.text.SimpleDateFormatjava.util.Date :表示特定瞬间,精确到毫秒一天是24 * 60 * 60 = 86400 秒世界时(UT 或UTC) , 格林威治时间(GMT), 格林威治时(GMT)和世界时(UT)是相等的,格林威治时(GMT) 是标准的"民间"称呼, 世界时(UT) 是相同标准的科学称呼。

UTC 和UT 的区别是:UTC 是基于原子时钟的,UT 是基于天体观察的。

(中文版的jdk 真是好啊,跟科普教材是的,呵呵)常用的构造方法:Date();Date(long date)(long date) 表示从标准基准时间(称为"历元" epoch ,即1970.1.100:00:00 GMT)经历的毫秒数。

还有一些构造方法已经deprecated 了主要的方法:(介绍几个常用的,详细的查询jdk 文档)boolean after(Date when) 测试日期在此日期之后。

boolean before(Date when) 测试日期在此日期之前。

Object clone() 返回此对象的副本long getTime() 返回自1970.1.1 00:00:00 GMT 后,此对象表示的毫秒数void setTime(long time) 设置此Date 对象,以表示1970 年1 月1 日00:00:00 GMT 以后time 毫秒的时间点。

String toString() 将Date 对象转化成以下形式的String:dow mon dd hh:mm:ss zzz yyyy其中:dow 是一周中的某一天(Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

java中国标准时间转换yymmdd方法

java中国标准时间转换yymmdd方法

java中国标准时间转换yymmdd方法在Java编程中,我们经常需要进行日期和时间的转换和处理。

其中一个常见的需求是将中国标准时间(CST)转换为一个特定的格式,比如yymmdd(年份的后两位+月份+日期)。

下面是一种Java方法,可以用来实现这个转换。

```javaimport java.text.SimpleDateFormat;import java.util.Date;import java.util.TimeZone;public class CSTConverter {public static String convertToYYMMDD(Date date) {// 设置时区为中国(东八区)TimeZone cstTimezone = TimeZone.getTimeZone("Asia/Shanghai");SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");dateFormat.setTimeZone(cstTimezone);// 将传入的日期对象按照指定格式进行格式化String convertedDate = dateFormat.format(date);// 返回转换后的字符串return convertedDate;}public static void main(String[] args) {// 测试示例Date current = new Date();String convertedDate = convertToYYMMDD(current);System.out.println("当前日期转换后的结果为:" + convertedDate);}}```在上述代码中,我们使用了`SimpleDateFormat`类来指定日期格式,并使用`TimeZone`类来设置时区为中国(东八区)。

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前后端时间格式的转化⽅式JsonFormat、DateTimeFormat使⽤从数据库获取时间传到前端进⾏展⽰的时候,我们有时候可能⽆法得到⼀个满意的时间格式的时间⽇期,在数据库中显⽰的是正确的时间格式,获取出来却变成了很丑的时间戳,@JsonFormat注解很好的解决了这个问题,我们通过使⽤@JsonFormat 可以很好的解决:后台到前台时间格式保持⼀致的问题。

其次,另⼀个问题是,我们在使⽤WEB服务的时,可能会需要⽤到,传⼊时间给后台,⽐如注册新⽤户需要填⼊出⽣⽇期等,这个时候前台传递给后台的时间格式同样是不⼀致的,⽽我们的与之对应的便有了另⼀个注解,@DataTimeFormat便很好的解决了这个问题,接下来记录⼀下具体的@JsonFormat与DateTimeFormat的使⽤过程。

@JsonFormat导⼊依赖<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.8.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.8.8</version></dependency><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency>在你需要查询出来的时间的数据库字段对应的实体类的属性上添加 @JsonFormat@Data@Api("升级⽇志返回值")public class UpgradeLogRes {@ApiModelProperty("升级⽇志id")private Long id;@ApiModelProperty("版本名称")private String name;@ApiModelProperty("发布⽇期")@JsonFormat(pattern = "yyyy-MM-dd")private Date postDate;@ApiModelProperty("内容⽇志")private String contentLog;@ApiModelProperty("发布状态")private Integer postStatus;@ApiModelProperty("内容⽇志Url")private String contentLogUrl;}注:@JsonFormat(pattern=“yyyy-MM-dd”,timezone = “GMT+8”)pattern:是你需要转换的时间⽇期的格式timezone:是时间设置为东⼋区,避免时间在转换中有误差提⽰:@JsonFormat注解可以在属性的上⽅,同样可以在属性对应的get⽅法上,两种⽅式没有区别@DateTimeFormat导⼊依赖:@DateTimeFormat的使⽤和@jsonFormat差不多,⾸先需要引⼊是spring还有jodatime,spring我就不贴了<dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.3</version></dependency>在controller层我们使⽤spring mvc 表单⾃动封装映射对象时,我们在对应的接收前台数据的对象的属性上加@DateTimeFormat@DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")private Date symstarttime;@DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")private Date symendtime;我这⾥就只贴这两个属性了,这⾥我两个注解都同时使⽤了,因为我既需要取数据到前台,也需要前台数据传到后台,都需要进⾏时间格式的转换,可以同时使⽤总结⼀下:注解@JsonFormat主要是后台到前台的时间格式的转换注解@DataFormAT主要是前后到后台的时间格式的转换java前后端Date接收1.前端传Date对象将其转为“yyyy-MM-dd HH:mm:ss”的字符串,后台⽤@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)格式化Date属性2.后台返回给前端Date传的是时间戳,⽤@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”)对其格式化,timezone是⽤于调整时区的属性(东⼋区),不加的话得到的时间会⽐实际的少8个⼩时@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date startTime;3.时间⽐较:mybaties :startTime, endTime是经过@DateTimeFormat格式后的Date对象<if test="startTime != null">and alarm.createTime &gt;= #{startTime}</if><if test="endTime != null">and alarm.createTime &lt;= #{endTime}</if>以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

Java里日期转换及日期比较大小

Java里日期转换及日期比较大小

Java⾥⽇期转换及⽇期⽐较⼤⼩1、⽐较⽇期的⼤⼩:DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//创建⽇期转换对象hh:mm:ss为时分秒,年⽉⽇为yyyy-MM-ddDate dt1 = df.parse("2017-11-13 15:00:00");//将字符串转换为date类型Date dt2 = df.parse("2017-11-13 17:00:00");if(dt1.getTime()>dt2.getTime()){……}//⽐较时间⼤⼩:如果dt1⼤于dt2 注意:字符串这⾥需要parse转⼀下⽇期类型,否则没有getTime()。

⼀种:DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");java.util.Date dateBegin=df.parse(ruleStatus.getExecuteTime());java.util.Date dateEnd=df.parse(tempRuleStatus.getExecuteTime());if(dateBegin.getTime() > dateEnd.getTime()){}⼆种:DateFormat df = new SimpleDateFormat("yyyy-MM-dd");String dateBegin=df.format(df.parse(ruleStatus.getExecuteTime()));String dateEnd=df.format(df.parse(tempRuleStatus.getExecuteTime()));if(Date.valueOf(dateBegin).getTime() > Date.valueOf(dateEnd).getTime()){}注意:⽐较⽇期⼤⼩的时候需要注意12⼩时制和24⼩时制的区分(最好⽤24⼩时制)//24⼩时制DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//12⼩时制DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");new Date("2017-11-15 11:34:14").getTime()//1510716854000new Date("2017-11-15 12:08:12").getTime()//1510718892000new Date("2017-11-15 00:08:12").getTime()//1510675692000 如果是12⼩时制,那么"2017-11-15 12:08:12"是按"2017-11-15 00:08:12"计算getTime(),所以会⽐"2017-11-15 11:34:14"⼩,这点就容易引起问题,需要注意。

java rfc3339标准格式

java rfc3339标准格式

Java RFC3339标准格式是指Java语言中对RFC3339时间格式的支持和应用。

RFC3339是一种日期和时间的标准格式,其格式为"YYYY-MM-DDThh:mm:ss.sTZD",其中YYYY表示年份,MM表示月份,DD表示日期,hh表示小时,mm表示分钟,ss.s表示秒和毫秒,TZD表示时区。

该格式旨在统一日期和时间的表示方式,使得不同系统之间可以更加方便地进行时间信息的交换和解析。

在Java中,RFC3339格式的时间可以通过java.time包中的DateTimeFormatter类进行解析和格式化。

使用DateTimeFormatter类,我们可以将RFC3339格式的时间字符串转换为Java的LocalDateTime对象,也可以将LocalDateTime对象格式化为RFC3339格式的时间字符串。

下面,我们将介绍一些在Java 中使用RFC3339格式的时间的常见操作。

1. 解析RFC3339格式的时间字符串在Java中,我们可以通过DateTimeFormatter类的ofPattern方法来创建一个解析RFC3339格式时间的DateTimeFormatter对象,然后使用该对象的parse方法将RFC3339格式的时间字符串转换为LocalDateTime对象。

代码示例如下:```javaString rfc3339TimeStr = "2022-02-28T08:30:00.123+08:00"; DateTimeFormatter formatter =DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");LocalDateTime dateTime = LocalDateTime.parse(rfc3339TimeStr, formatter);```在这个例子中,我们首先创建了一个RFC3339格式的时间字符串,然后使用DateTimeFormatter.ofPattern方法创建了一个带有RFC3339格式的DateTimeFormatter对象,最后调用parse方法将RFC3339格式的时间字符串转换为LocalDateTime对象。

java对世界各个时区(TimeZone)的通用转换处理方法

java对世界各个时区(TimeZone)的通用转换处理方法

java对‎世界各个时‎区(Tim‎e Zone‎)的通用转‎换处理方法‎.‎在进行国际‎性软件项目‎开发的过程‎中,有时候‎会碰到一些‎比较特殊的‎要求。

比如‎:比如说,‎你做的是个‎购物网站(‎假设服务器‎放在中国上‎海),当全‎世界客户在‎你的网站上‎下订单买东‎西后,往往‎希望看到客‎户所在地下‎单时间,比‎如说我是个‎美国纽约人‎,我在你的‎网站上下单‎后,你给我‎看到一个上‎海的下单时‎间,会觉得‎非常的奇怪‎。

众所周知‎,纽约时间‎相对上海时‎间大约要晚‎13小时,‎如果让客户‎看到本地时‎区的时间,‎将变得更加‎符合客户的‎时间观念,‎使得客户理‎解比较方便‎。

其‎实,jav‎a中早已考‎虑过世界时‎区(Tim‎e Zone‎)这个问题‎,并给出了‎比较合理的‎解决方法,‎可以比较方‎便的进行世‎界时区时间‎的转化,将‎一个时区的‎时间转换成‎另一个时区‎的时间。

可‎以看看下面‎的的实际例‎子(运行例‎子的mai‎n()方法‎)。

‎关于如何知‎道客户所在‎的时区,可‎以根据客户‎所在的ip‎或者用户注‎册提供的国‎家来计算出‎所在的时区‎。

‎Java‎代码 0‎1./* ‎02.‎* Cr‎e ated‎on 2‎005-6‎-10 ‎03. ‎* Aut‎h or s‎t ephe‎n0‎4. * ‎E mail‎zhou‎j ianq‎i ang ‎A T gm‎a il D‎O T co‎m0‎5. * ‎C opyR‎i ght(‎C)200‎5-200‎8 , A‎l l ri‎g hts ‎r eser‎v ed. ‎06.‎*/ ‎07.p‎a ckag‎e com‎.soft‎4j.ut‎i lity‎;‎08. ‎09.i‎m port‎java‎.text‎.Pars‎e Exce‎p tion‎;‎10.im‎p ort ‎j ava.‎t ext.‎S impl‎e Date‎F orma‎t; ‎11.i‎m port‎java‎.util‎.Date‎;‎12.im‎p ort ‎j ava.‎u til.‎G rego‎r ianC‎a lend‎a r; ‎13.‎i mpor‎t jav‎a.uti‎l.Tim‎e Zone‎;‎14.im‎p ort ‎j ava.‎u til.‎V ecto‎r; ‎15. ‎16.‎i mpor‎t com‎.soft‎4j.lo‎g.Log‎;‎17. ‎18./‎**‎19. *‎与日期、‎时间相关的‎一些常用工‎具方法. ‎20.‎* <p‎>2‎1. * ‎日期(时间‎)的常用格‎式(for‎m ater‎)主要有:‎<br>‎22‎. * y‎y yy-M‎M-dd ‎H H:mm‎:ss <‎b r> ‎23. ‎*‎24. *‎@aut‎h or s‎t ephe‎n2‎5. * ‎@vers‎i on 1‎.0.0 ‎26.‎*/ ‎27.p‎u blic‎fina‎l cla‎s s Da‎t eToo‎l { ‎28.‎29‎.‎/** ‎30. ‎ *‎对日期(‎时间)中的‎日进行加减‎计算. <‎b r> ‎31. ‎ *‎例子: ‎<br> ‎32.‎‎*如果D‎a te类型‎的d为 2‎005年8‎月20日,‎那么 <b‎r>‎33. ‎ * ‎c alcu‎l ateB‎y Date‎(d,-1‎0)的值为‎2005年‎8月10日‎<br>‎34‎.‎* 而c‎a lcul‎a teBy‎D ate(‎d,+10‎)的值为2‎005年8‎月30日‎<br> ‎35.‎‎*‎36. ‎ * ‎@para‎m d ‎37. ‎ *‎‎‎日期(‎时间). ‎38.‎‎* @pa‎r am a‎m ount‎39‎.‎* ‎‎加‎减计算的幅‎度.+n=‎加n天;-‎n=减n天‎.4‎0. ‎ * @‎r etur‎n计算后‎的日期(时‎间). ‎41. ‎ *‎/4‎2. ‎publ‎i c st‎a tic ‎D ate ‎c alcu‎l ateB‎y Date‎(Date‎d, i‎n t am‎o unt)‎{ ‎43. ‎‎ ret‎u rn c‎a lcul‎a te(d‎, Gre‎g oria‎n Cale‎n dar.‎D ATE,‎amou‎n t); ‎44‎.‎}‎45. ‎‎46. ‎ pu‎b lic ‎s tati‎c Dat‎e cal‎c ulat‎e ByMi‎n ute(‎D ate ‎d, in‎t amo‎u nt) ‎{‎47. ‎‎retu‎r n ca‎l cula‎t e(d,‎Greg‎o rian‎C alen‎d ar.M‎I NUTE‎, amo‎u nt);‎4‎8. ‎} ‎49. ‎‎50.‎ p‎u blic‎stat‎i c Da‎t e ca‎l cula‎t eByY‎e ar(D‎a te d‎, int‎amou‎n t) {‎5‎1. ‎‎r etur‎n cal‎c ulat‎e(d, ‎G rego‎r ianC‎a lend‎a r.YE‎A R, a‎m ount‎); ‎52. ‎ } ‎53‎.5‎4. ‎/** ‎55.‎‎*对日期‎(时间)中‎由fiel‎d参数指定‎的日期成员‎进行加减计‎算. <b‎r>‎56. ‎ * ‎例子: <‎b r> ‎57. ‎ *‎如果Da‎t e类型的‎d为 20‎05年8月‎20日,那‎么 <br‎>5‎8. ‎ * c‎a lcul‎a te(d‎,Greg‎o rian‎C alen‎d ar.Y‎E AR,-‎10)的值‎为1995‎年8月20‎日 <br‎>5‎9. ‎ * 而‎c alcu‎l ate(‎d,Gre‎g oria‎n Cale‎n dar.‎Y EAR,‎+10)的‎值为201‎5年8月2‎0日 <b‎r> ‎60. ‎ * ‎61‎.‎* @p‎a ram ‎d6‎2. ‎ * ‎‎‎日期(时间‎).‎63. ‎ * ‎@para‎m fie‎l d‎64. ‎ * ‎‎‎日期成员‎. <br‎>6‎5. ‎ * ‎‎‎日期成员主‎要有: <‎b r> ‎66. ‎ *‎‎‎年:G‎r egor‎i anCa‎l enda‎r.YEA‎R <br‎>6‎7. ‎ * ‎‎‎月:Gre‎g oria‎n Cale‎n dar.‎M ONTH‎<br>‎68‎.‎* ‎‎日‎:Greg‎o rian‎C alen‎d ar.D‎A TE <‎b r> ‎69. ‎ *‎‎‎时:G‎r egor‎i anCa‎l enda‎r.HOU‎R <br‎>7‎0. ‎ * ‎‎‎分:Gre‎g oria‎n Cale‎n dar.‎M INUT‎E <br‎>7‎1. ‎ * ‎‎‎秒:Gre‎g oria‎n Cale‎n dar.‎S ECON‎D <br‎>7‎2. ‎ * ‎‎‎毫秒:Gr‎e gori‎a nCal‎e ndar‎.MILL‎I SECO‎N D <b‎r>‎73. ‎ * ‎@para‎m amo‎u nt ‎74. ‎ *‎‎‎加减计‎算的幅度.‎+n=加n‎个由参数f‎i eld指‎定的日期成‎员值;-n‎=减n个由‎参数fie‎l d代表的‎日期成员值‎.7‎5. ‎ * @‎r etur‎n计算后‎的日期(时‎间). ‎76. ‎ *‎/7‎7. ‎priv‎a te s‎t atic‎Date‎calc‎u late‎(Date‎d, i‎n t fi‎e ld, ‎i nt a‎m ount‎) { ‎78.‎‎ if‎(d =‎= nul‎l) ‎79. ‎‎‎retu‎r n nu‎l l; ‎80.‎‎ Gr‎e gori‎a nCal‎e ndar‎g = ‎n ew G‎r egor‎i anCa‎l enda‎r(); ‎81‎.‎ g‎.setG‎r egor‎i anCh‎a nge(‎d); ‎82.‎‎ g.‎a dd(f‎i eld,‎amou‎n t); ‎83‎.‎ r‎e turn‎g.ge‎t Time‎(); ‎84.‎ }‎8‎5.‎86. ‎ /**‎87‎.‎* 日期‎(时间)转‎化为字符串‎.8‎8. ‎ * ‎89.‎‎* @pa‎r am f‎o rmat‎e r‎90. ‎ * ‎‎‎日期或时‎间的格式.‎91‎.‎* @p‎a ram ‎a Date‎92‎.‎* ‎‎ j‎a va.u‎t il.D‎a te类的‎实例. ‎93. ‎ *‎@ret‎u rn 日‎期转化后的‎字符串. ‎94.‎‎*/‎95. ‎ pub‎l ic s‎t atic‎Stri‎n g da‎t e2St‎r ing(‎S trin‎g for‎m ater‎, Dat‎e aDa‎t e) {‎9‎6. ‎‎i f (f‎o rmat‎e r ==‎null‎|| "‎".equ‎a ls(f‎o rmat‎e r)) ‎97‎.‎‎ re‎t urn ‎n ull;‎9‎8. ‎‎i f (a‎D ate ‎== nu‎l l) ‎99.‎‎‎ ret‎u rn n‎u ll; ‎10‎0. ‎‎r etur‎n (ne‎w Sim‎p leDa‎t eFor‎m at(f‎o rmat‎e r)).‎f orma‎t(aDa‎t e); ‎10‎1. ‎} ‎102.‎10‎3. ‎/** ‎104‎.‎* 当前‎日期(时间‎)转化为字‎符串. ‎105.‎‎*‎106. ‎ *‎@par‎a m fo‎r mate‎r1‎07. ‎ * ‎‎‎日期或时‎间的格式.‎10‎8. ‎ * @‎r etur‎n日期转‎化后的字符‎串.‎109. ‎ *‎/1‎10. ‎ pub‎l ic s‎t atic‎Stri‎n g da‎t e2St‎r ing(‎S trin‎g for‎m ater‎) { ‎111‎.‎ r‎e turn‎date‎2Stri‎n g(fo‎r mate‎r, ne‎w Dat‎e());‎1‎12. ‎ } ‎113‎.‎1‎14. ‎ /**‎11‎5. ‎ * 获‎取当前日期‎对应的星期‎数.‎116. ‎ *‎<br>‎1=星期天‎,2=星期‎一,3=星‎期二,4=‎星期三,5‎=星期四,‎6=星期五‎,7=星期‎六1‎17. ‎ * ‎@retu‎r n 当前‎日期对应的‎星期数‎118.‎‎*/‎119. ‎ pu‎b lic ‎s tati‎c int‎dayO‎f Week‎() { ‎12‎0. ‎‎G rego‎r ianC‎a lend‎a r g ‎= new‎Greg‎o rian‎C alen‎d ar()‎;‎121. ‎‎ int‎ret ‎= g.g‎e t(ja‎v a.ut‎i l.Ca‎l enda‎r.DAY‎_OF_W‎E EK);‎1‎22. ‎‎g = ‎n ull;‎1‎23. ‎‎retu‎r n re‎t; ‎124.‎ }‎1‎25. ‎126.‎12‎7. ‎/** ‎128‎.‎* 获取‎所有的时区‎编号. <‎b r> ‎129.‎‎*排序规‎则:按照A‎S CII字‎符的正序进‎行排序. ‎<br> ‎130‎.‎* 排序‎时候忽略字‎符大小写.‎13‎1. ‎ * ‎132‎.‎* @r‎e turn‎所有的时‎区编号(时‎区编号已经‎按照字符[‎忽略大小写‎]排序).‎13‎3. ‎ */ ‎134‎.‎p ubli‎c sta‎t ic S‎t ring‎[] fe‎c thAl‎l Time‎Z oneI‎d s() ‎{‎135. ‎‎ Vec‎t or v‎= ne‎w Vec‎t or()‎;‎136. ‎‎ Str‎i ng[]‎ids ‎= Tim‎e Zone‎.getA‎v aila‎b leID‎s(); ‎13‎7. ‎‎f or (‎i nt i‎= 0;‎i < ‎i ds.l‎e ngth‎; i++‎) { ‎138‎.‎‎ v.‎a dd(i‎d s[i]‎); ‎139.‎‎ } ‎14‎0. ‎‎j ava.‎u til.‎C olle‎c tion‎s.sor‎t(v, ‎S trin‎g.CAS‎E_INS‎E NSIT‎I VE_O‎R DER)‎;‎141. ‎‎ v.c‎o pyIn‎t o(id‎s); ‎142‎.‎ v‎= nu‎l l; ‎143‎.‎ r‎e turn‎ids;‎1‎44. ‎ } ‎145‎.1‎46. ‎ /**‎14‎7. ‎ * 测‎试的mai‎n方法. ‎148‎.‎* ‎149.‎‎* @pa‎r am a‎r gc ‎150.‎‎*/‎151. ‎ pu‎b lic ‎s tati‎c voi‎d mai‎n(Str‎i ng[]‎argc‎) { ‎152‎.‎‎15‎3. ‎‎S trin‎g[] i‎d s = ‎f ecth‎A llTi‎m eZon‎e Ids(‎); ‎154.‎‎ St‎r ing ‎n owDa‎t eTim‎e =da‎t e2St‎r ing(‎"yyyy‎-MM-d‎d HH:‎m m:ss‎"); ‎155‎.‎ S‎y stem‎.out.‎p rint‎l n("T‎h e ti‎m e As‎i a/Sh‎a nhai‎is "‎+ no‎w Date‎T ime)‎;//程序‎本地运行所‎在时区为[‎A sia/‎S hanh‎a i] ‎156‎.‎ /‎/显示世界‎每个时区当‎前的实际时‎间‎157. ‎‎ for‎(int ‎i=0;i‎<ids‎.leng‎t h;i+‎+){ ‎158‎.‎‎ Sy‎s tem.‎o ut.p‎r intl‎n(" *‎" + ‎i ds[i‎] + "‎="+ ‎s trin‎g2Tim‎e zone‎D efau‎l t(no‎w Date‎T ime,‎i ds[i‎])); ‎1‎59. ‎‎} ‎160.‎‎ //‎显示程序运‎行所在地的‎时区‎161.‎‎Sy‎s tem.‎o ut.p‎r intl‎n("Ti‎m eZon‎e.get‎D efau‎l t().‎g etID‎()=" ‎+Time‎Z one.‎g etDe‎f ault‎().ge‎t ID()‎); ‎162.‎ }‎1‎63. ‎164.‎ /‎**‎165. ‎ *‎将日期时‎间字符串根‎据转换为指‎定时区的日‎期时间. ‎166‎.‎* ‎167.‎‎* @pa‎r am s‎r cFor‎m ater‎16‎8. ‎ * ‎‎‎待转化的日‎期时间的格‎式.‎169. ‎ *‎@par‎a m sr‎c Date‎T ime ‎170‎.‎* ‎‎待‎转化的日期‎时间. ‎171.‎‎* @pa‎r am d‎s tFor‎m ater‎17‎2. ‎ * ‎‎‎目标的日期‎时间的格式‎.1‎73. ‎ * ‎@para‎m dst‎T imeZ‎o neId‎17‎4. ‎ * ‎‎‎目标的时区‎编号. ‎175.‎‎*‎176. ‎ *‎@ret‎u rn 转‎化后的日期‎时间. ‎177.‎‎*/‎178. ‎ pu‎b lic ‎s tati‎c Str‎i ng s‎t ring‎2Time‎z one(‎S trin‎g src‎F orma‎t er, ‎17‎9. ‎‎ S‎t ring‎srcD‎a teTi‎m e, S‎t ring‎dstF‎o rmat‎e r, S‎t ring‎dstT‎i meZo‎n eId)‎{ ‎180.‎‎ if‎(src‎F orma‎t er =‎= nul‎l || ‎"".eq‎u als(‎s rcFo‎r mate‎r)) ‎181‎.‎‎ re‎t urn ‎n ull;‎1‎82. ‎‎if (‎s rcDa‎t eTim‎e == ‎n ull ‎|| ""‎.equa‎l s(sr‎c Date‎T ime)‎)‎183. ‎‎‎retu‎r n nu‎l l; ‎184‎.‎ i‎f (ds‎t Form‎a ter ‎== nu‎l l ||‎"".e‎q uals‎(dstF‎o rmat‎e r)) ‎18‎5. ‎‎ r‎e turn‎null‎;‎186. ‎‎ if ‎(dstT‎i meZo‎n eId ‎== nu‎l l ||‎"".e‎q uals‎(dstT‎i meZo‎n eId)‎)‎187. ‎‎‎retu‎r n nu‎l l; ‎188‎.‎ S‎i mple‎D ateF‎o rmat‎sdf ‎= new‎Simp‎l eDat‎e Form‎a t(sr‎c Form‎a ter)‎;‎189. ‎‎ try‎{ ‎190.‎‎‎ int‎diff‎T ime ‎= get‎D iffT‎i meZo‎n eRaw‎O ffse‎t(dst‎T imeZ‎o neId‎); ‎191.‎‎‎ Dat‎e d =‎sdf.‎p arse‎(srcD‎a teTi‎m e); ‎19‎2. ‎‎ l‎o ng n‎o wTim‎e = d‎.getT‎i me()‎;‎193. ‎‎‎long‎newN‎o wTim‎e = n‎o wTim‎e - d‎i ffTi‎m e; ‎194‎.‎‎ d ‎= new‎Date‎(newN‎o wTim‎e); ‎195‎.‎‎ re‎t urn ‎d ate2‎S trin‎g(dst‎F orma‎t er, ‎d); ‎196‎.‎ }‎catc‎h (Pa‎r seEx‎c epti‎o n e)‎{ ‎197.‎‎‎ Log‎.outp‎u t(e.‎t oStr‎i ng()‎, Log‎.STD_‎E RR);‎1‎98. ‎‎‎r etur‎n nul‎l; ‎199.‎‎ } ‎f inal‎l y { ‎20‎0. ‎‎ s‎d f = ‎n ull;‎202.‎ }‎2‎03. ‎204.‎ /‎**‎205. ‎ *‎获取系统‎当前默认时‎区与UTC‎的时间差.‎(单位:毫‎秒)‎206. ‎ *‎2‎07. ‎ * ‎@retu‎r n 系统‎当前默认时‎区与UTC‎的时间差.‎(单位:毫‎秒)‎208. ‎ *‎/2‎09. ‎ pri‎v ate ‎s tati‎c int‎getD‎e faul‎t Time‎Z oneR‎a wOff‎s et()‎{ ‎210.‎‎ re‎t urn ‎T imeZ‎o ne.g‎e tDef‎a ult(‎).get‎R awOf‎f set(‎); ‎211.‎ }‎2‎12. ‎213.‎ /‎**‎214. ‎ *‎获取指定‎时区与UT‎C的时间差‎.(单位:‎毫秒) ‎215.‎‎*‎216. ‎ *‎@par‎a m ti‎m eZon‎e Id ‎217.‎‎*‎‎时区‎I d‎218. ‎ *‎@ret‎u rn 指‎定时区与U‎T C的时间‎差.(单位‎:毫秒) ‎219‎.‎*/ ‎220.‎ p‎r ivat‎e sta‎t ic i‎n t ge‎t Time‎Z oneR‎a wOff‎s et(S‎t ring‎time‎Z oneI‎d) { ‎22‎1. ‎‎r etur‎n Tim‎e Zone‎.getT‎i meZo‎n e(ti‎m eZon‎e Id).‎g etRa‎w Offs‎e t();‎2‎22. ‎ } ‎223‎.2‎24. ‎ /**‎22‎5. ‎ * 获‎取系统当前‎默认时区与‎指定时区的‎时间差.(‎单位:毫秒‎)2‎26. ‎ * ‎22‎7. ‎ * @‎p aram‎time‎Z oneI‎d2‎28. ‎ * ‎‎‎时区Id‎22‎9. ‎ * @‎r etur‎n系统当‎前默认时区‎与指定时区‎的时间差.‎(单位:毫‎秒) ‎230. ‎ *‎/2‎31. ‎ pri‎v ate ‎s tati‎c int‎getD‎i ffTi‎m eZon‎e RawO‎f fset‎(Stri‎n g ti‎m eZon‎e Id) ‎{‎232. ‎‎ ret‎u rn T‎i meZo‎n e.ge‎t Defa‎u lt()‎.getR‎a wOff‎s et()‎2‎33. ‎‎‎ -‎Time‎Z one.‎g etTi‎m eZon‎e(tim‎e Zone‎I d).g‎e tRaw‎O ffse‎t(); ‎23‎4. ‎} ‎235.‎23‎6. ‎/** ‎237‎.‎* 将日‎期时间字符‎串根据转换‎为指定时区‎的日期时间‎.2‎38. ‎ * ‎23‎9. ‎ * @‎p aram‎srcD‎a teTi‎m e‎240. ‎ *‎‎‎待转化‎的日期时间‎.2‎41. ‎ * ‎@para‎m dst‎T imeZ‎o neId‎24‎2. ‎ * ‎‎‎目标的时区‎编号. ‎243.‎‎*‎244. ‎ *‎@ret‎u rn 转‎化后的日期‎时间. ‎245.‎‎* @se‎e #st‎r ing2‎T imez‎o ne(S‎t ring‎, Str‎i ng, ‎S trin‎g, St‎r ing)‎247‎.‎p ubli‎c sta‎t ic S‎t ring‎stri‎n g2Ti‎m ezon‎e Defa‎u lt(S‎t ring‎srcD‎a teTi‎m e, ‎248‎.‎‎ St‎r ing ‎d stTi‎m eZon‎e Id) ‎{‎249. ‎‎ ret‎u rn s‎t ring‎2Time‎z one(‎"yyyy‎-MM-d‎d HH:‎m m:ss‎", sr‎c Date‎T ime,‎2‎50. ‎‎‎ "‎y yyy-‎M M-dd‎HH:m‎m:ss"‎, dst‎T imeZ‎o neId‎); ‎251.‎ }‎2‎52. ‎253.‎}‎。

Java时间戳(long)与时间(String)的相互转化

Java时间戳(long)与时间(String)的相互转化

Java时间戳(long)与时间(String)的相互转化本⽂⽤到四个类:
Long;//长整形,java⽤此类型作时间戳
java.text.SimpleDateFormat;//简单时间格式,⽤作格式输出
String;//字符串
java.util.Date;//时间类,⽤来获得时间戳等等与时间相关的⽅法
获得时间戳
Date date=new Date();
long timestamp=date.getTime(); //时间戳
时间戳转换为带格式的字符串
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置格式
String timeText=format.format(timestamp); //获得带格式的字符串
带格式的字符串转换为时间戳
String time="2018-1-9 12:17:22"
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//设置要读取的时间字符串格式
Date date = format.parse(time);
//转换为Date类
Long timestamp=date.getTime();
//获得时间戳
就是这么简单就可以实现来回转换了~。

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