Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何转换时区偏移为2位的日历?_Java_Date_Calendar - Fatal编程技术网

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。。。