String ->Date ->String

    @Test
public void date() throws ParseException{
String sdate = "01-01-2025";
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date = sdf.parse(sdate);
System.out.println("--date--"+date); sdate = (new SimpleDateFormat("yyyy-MM-dd")).format(date); System.out.println("---String---"+sdate);
}

打印结果:

--date--Wed Jan 01 00:00:00 CST 2025
---String---2025-01-01

XMLGregorianCalendar -> Date -> String

    /**
* 将Date类转换为XMLGregorianCalendar
* @param date
* @return
*/
public static XMLGregorianCalendar dateToXmlDate(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
DatatypeFactory dtf = null;
try {
dtf = DatatypeFactory.newInstance();
} catch (DatatypeConfigurationException e) {
}
XMLGregorianCalendar dateType = dtf.newXMLGregorianCalendar();
dateType.setYear(cal.get(Calendar.YEAR));
//由于Calendar.MONTH取值范围为0~11,需要加1
dateType.setMonth(cal.get(Calendar.MONTH)+);
dateType.setDay(cal.get(Calendar.DAY_OF_MONTH));
dateType.setHour(cal.get(Calendar.HOUR_OF_DAY));
dateType.setMinute(cal.get(Calendar.MINUTE));
dateType.setSecond(cal.get(Calendar.SECOND));
return dateType;
} /**
* 将XMLGregorianCalendar转换为Date
* @param cal
* @return
*/
public static Date xmlDate2Date(XMLGregorianCalendar cal){
return cal.toGregorianCalendar().getTime();
}

有关TimeZone的计算

/**
* Convert the string date value to date value.
*
* @param format
* - Time pattern for this date format.
* @param dateStr
* - String date value to be converted.
* @return Date value for the input date string.
*/
public static Date getStrToGMTDate(final String format, final String timeZoneOffset, final String dateStr) throws ParseException {
Date result = null;
if (!StringUtils.isEmpty(dateStr)) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
TimeZone tz=TimeZone.getTimeZone(TIMEZONE_GMT+timeZoneOffset);
simpleDateFormat.setTimeZone(tz);
simpleDateFormat.applyPattern(format);
simpleDateFormat.setLenient(false);
result = simpleDateFormat.parse(dateStr);
}
return result;
}
    @Test
public void date1() { String departureDateTimeStr = "2017-05-04 10:00";
LocalDateTime departureDateTime = LocalDateTime.parse(departureDateTimeStr,
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); ZoneOffset offset = ZoneOffset.of("+08:00");
long hours = Instant.now().until(departureDateTime.toInstant(offset), ChronoUnit.HOURS);
// Check if the hour difference is more than 24 hours
if (hours >= ) {
System.out.println("----------" + hours);
}
}

----------26

参考资料:

http://www.howsoftworks.net/javaapi/java.time/indexlocaldatetime.html

https://docs.oracle.com/javase/8/docs/api/java/time/ZoneOffset.html

时间的类型的相互转换(date/String)及时区的比较的更多相关文章

  1. JS时间和字符串的相互转换 Date+String

    1.js字符串转换成时间 1.1方法一:输入的时间格式为yyyy-MM-dd function convertDateFromString(dateString) { if (dateString) ...

  2. 转——JAVA中calendar,date,string 的相互转换和详细用法

    package cn.outofmemory.codes.Date; import java.util.Calendar; import java.util.Date; public class Ca ...

  3. C#中字节数组byte[]和字符串string类型的相互转换

    C#中字节数组byte[]和字符串string类型的相互转换: string转byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBy ...

  4. java字符串和时间类型的相互转换

    整理的时间正则可能不全 /****** * * 是以"-" 为分隔符的 * * * * ******/ // 2012-12-03 04:07:34 reg = "\\d ...

  5. [转] java中int,char,string三种类型的相互转换

    原文地址:http://blog.csdn.net/lisa0220/article/details/6649707 如何将字串 String 转换成整数 int? int i = Integer.v ...

  6. Date类型和Long类型的相互转换

    Date类型和Long类型的相互转换: import java.text.SimpleDateFormat; import java.util.Date; public class T { publi ...

  7. java中int,char,string三种类型的相互转换

    如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...

  8. js常用API 数据类型 基本类型,基本包装类型,引用类型 Object String Array Boolean Number Date Math

    数据类型 变量.作用域及内存 基础类型(primitive value):Undefined.Null.Boolean.Number和String.这些类型在内存中分别占用固定大小的空间,他们的值保存 ...

  9. Java——string类型与date类型之间的转化

    String类型转化为Date类型 方法一 Date date=new Date("2019-01-25"); 方法二 String =(new SimpleDateFormat( ...

随机推荐

  1. MAC算法

    MAC算法 (Message Authentication Codes) 带秘密密钥的Hash函数:消息的散列值由只有通信双方知道的秘密密钥K来控制.此时Hash值称作MAC. 原理:在md与sha系 ...

  2. 单用户模式&救援模式&克隆虚拟机&Linux机器相互登录

    1.13 单用户模式 1.14 救援模式 1.15 克隆虚拟机 1.16 Linux机器相互登录 1.单用户模式 关机:init 0 .poweroff 重启:init 6 .reboot 关机:in ...

  3. 两台linux服务器之间实现挂载

    https://blog.csdn.net/lpp_dd/article/details/78743862 两台linux服务器之间实现挂载: 服务端: 1.首先需要在主机上设置允许挂载的目录 (1) ...

  4. 谈谈Android NDK中动态链接库(.so文件)的优化

    做了不少NDK相关的工作,不知道别人有没有同样的困惑,经常在编译C/C++代码的时候会出一些error或者warning,然后在网上搜,发现在Android.mk或者Application.mk文件中 ...

  5. JavaScript 使用穷举方式实现内容简繁转换

    场景: 在Web开发中,有时存在对内容进行简体和繁体互相转换的需求,这时我们可以参考以下做法. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 ...

  6. datatable删除一行方法

    t.row($(e).parents('tr')[0]).remove().draw(false); t为定义的datatable对象,row里面传入当前行的DOM元素.

  7. 存储过程打印超过8000的VARCHAR字符的问题

    DECLARE @info NVARCHAR(MAX) --SET @info to something big PRINT CAST(@info AS NTEXT) 这样就可以输出超过8000的字符 ...

  8. jsp新建项目

    1.在原有项目的基础上新建一个文件夹 在文件夹内新建一个jsp文件 取名 JSP容器处理JSP文件需要以下三个阶段:翻译——编译——执行 JSP的页面元素包括 静态内容-HTML静态文本 指令-以“& ...

  9. js获取iframe里面的元素

    直接获取不行 var  win2 = document.querySelector('iframe[width = "1280" ]').contentWindow; var lo ...

  10. 恶劣条件下的apache配置(Linux)

    (本文出自yangjj ^_^)   前提:1.没联网,yum挂.2.至少要有GCC,要不玩个屁. 3.你有充足的咖啡并且有几个小时时间不想打dota. 4.你要做集群. 以上条件不满足其一,看到这里 ...