Java 如何转换时区偏移为2位的日历?
我正在将Java 如何转换时区偏移为2位的日历?,java,date,calendar,Java,Date,Calendar,我正在将日历转换为格式为hh:mm+-UTCoffset的字符串,如13:37-0500。 如何将日历的时区限制为2位数?(此外:4位数代表什么?时区差异不总是2位数吗?) 要截断最后两位数字,这是我目前的方法: DateFormatUtils.format(date, "HH:mmZ").substring(0, 8); 但这不能做得更优雅些吗?我觉得在这里使用子字符串是不正确的…使用X而不是Z。查看示例代码: SimpleDateFormat sdf=new SimpleDateF
日历
转换为格式为hh:mm+-UTCoffset的字符串,如13:37-0500
。
如何将日历的时区限制为2位数?(此外:4位数代表什么?时区差异不总是2位数吗?)
要截断最后两位数字,这是我目前的方法:
DateFormatUtils.format(date, "HH:mmZ").substring(0, 8);
但这不能做得更优雅些吗?我觉得在这里使用子字符串是不正确的…使用
X
而不是Z
。查看示例代码:
SimpleDateFormat sdf=new SimpleDateFormat("HH:mmX");
Date date=new Date();
System.out.println(sdf.format(date));
输出:18:44+06此答案仅用于第二个问题: 4位数代表什么?时区差异不总是两位数吗
至少有一个时区,即伊朗使用的中东时间,其定义为GMT+3.5,因此只有两位数字不适合此时区。是的,如果您有
日期
。但是我有一个Calendar
对象,使用SimpleDateFormat
无法解析它``Calendar.getTime()`使用timeinmillis提供引用Date
,但是它没有显示正确的偏移量anmyore。。。