`

求,java获取时间端问题,谢谢

 
阅读更多
根据当前时间获取上一个30分钟的时间范围, 
 比如现在时间20120808122020,
则需要得到20120808113000--201200808120000,
求java程序,谢谢
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestTime {
 public static void main(String[] args) {
  System.out.println(getTimeArea(null));
 }
 
 public static String getTimeArea(Date date){
  if(date == null){
   date = new Date();
  }
  String year = getBean("yyyy").format(date);
  String month = getBean("MM").format(date);
  String day = getBean("dd").format(date);
  String hour = getBean("HH").format(date);
  String min = getBean("mm").format(date);
  String min_x_1 = "00";
  String min_x_2 = "29";
  String min_y_1 = "30";
  String min_y_2 = "59";
  String sec_default_s = "00";
  String sec_default_e = "59";
  String con = "-";//连接符
  String begin = "";
  String end = "";
  //验证分钟
  if(Integer.parseInt(min)>30){
   begin = year+month+day+hour+min_x_1+sec_default_s;
   end = year+month+day+hour+min_x_2+sec_default_e;
   return begin+con+end;
  }else{
   //先验证是不是在00:00与00:30分钟之间,包含00:00和00:30,如201208081200
   if("00".equals(hour)){
    hour = "23";
    //在零点30分钟之间,验证是不是月初第一天,即day为01
    if("01".equals(day)){
     //月初第一天的凌晨,验证是不是年初第一月 20120101001200
     if("01".equals(month)){
      year = String.valueOf(Integer.parseInt(year)-1);
      month = "12";
      day = "31";
     }else{
      //不是年初第一月 如:20120201001200
      if("03".equals(month)){
       //验证是不是闰年
         Integer yearInt = Integer.parseInt(year);
         if((yearInt % 4 == 0 && yearInt % 100 != 0) || yearInt % 400 == 0){
                        day = "29";
          }else{
                        day = "28";
          }
      }else{
       if("05".equals(month)||"07".equals(month)||"10".equals(month)||"12".equals(month)){
        day = "30";
       }else{
        day = "31";
       }
      }
      
      month = formatDecimal(month);
     }
    }else{
     //不是月初第一天
     day = formatDecimal(day);
    }
   }else{
    //不在零点30分钟之前    
    hour = formatDecimal(hour);
   }
   
   begin = year+month+day+hour+min_y_1+sec_default_s;
   end = year+month+day+hour+min_y_2+sec_default_e;
   return begin+con+end;
  }
 }
 
 public static SimpleDateFormat getBean(String pattern){
  return new SimpleDateFormat(pattern);
 }
 public static String formatDecimal(String data){
  return new DecimalFormat("00").format(Integer.parseInt(data)-1);
 }
}
分享到:
评论

相关推荐

    java 获取标准北京时间

    java 获取标准北京时间 标准北京时间 北京时间 网络时间 internet时间

    java获取文件创建时间

    ### Java 获取文件创建时间 在Java中,获取文件的创建时间并不像获取文件的最后修改时间那样简单直接。这是因为Java标准库(JDK)在早期版本中并没有提供直接获取文件创建时间的方法。不过,从Java 7开始,通过NIO...

    java获取标准格林尼治时间

    java 获取标准格林尼治时 标准格林尼治时间 标准时间

    java 获取系统时间错误,少了8小时

    然而,标题"java 获取系统时间错误,少了8小时"表明开发者在尝试获取系统时间时遇到了一个时区问题。这通常与Java中的时区设置和夏令时(Daylight Saving Time, DST)处理有关。 Java的`Date`类在默认情况下会按照...

    java获取系统时间与实际相差8小时的解决方法

    然而,有时我们可能会遇到一个常见问题,即从Java程序中获取到的时间与实际时间相差8小时,这主要是由于时区设置不正确导致的。这个问题在跨时区开发和运行应用时尤为突出。 首先,我们需要理解Java中的日期和时间...

    java获取今天、昨天、近一周、本周、本月时间段

    java获取今天、昨天、近一周、近两周、近三周、近一月、近两月、近三月、近半年、本周、上周、本月、上月时间段

    java 获取指定日期(带毫秒)13位时间戳

    java 获取指定日期(带毫秒)的 13位时间戳 ,获取当前时间的时间戳 一句话就可以System.currentTimeMillis();

    java 获取农历24节气时间

    Java 实现当前日期的农历日期显示以及节气显示,完美实现24节气

    获取日出日落时间的Java工具类

    获取日出日落时间的Java工具类,如果要获取国外的日出日落时间,需要减去对应时差哦

    Java获取CPU&主板&硬盘序列号

    在Java编程中,获取计算机硬件信息,如CPU、主板和硬盘序列号,通常是通过操作系统提供的API接口或者第三方库来实现的。以下是一个详细的步骤和知识点介绍: 1. **CPU序列号获取**: CPU序列号是CPU的一个唯一标识...

    java获取各进程的信息

    ### Java通过Sigar库获取进程相关信息 在Java开发过程中,有时候我们需要监控系统资源或特定进程的状态,例如CPU使用率、内存占用情况等。这在服务器性能监控、问题排查等方面尤为重要。本文将详细介绍如何使用...

    Java获取本周一、上周一、下周一时间

    Java获取本周一、上周一、下周一时间,Java获取本周一、上周一、下周一时间,Java获取本周一、上周一、下周一时间,Java获取本周一、上周一、下周一时间

    java 获取本周周一(中国意义上的周一)

    java 获取本周周一。一般在外国,‘周一’就是周日。所以网上很有很多方法,还得二次修改,我这个直接就是真正中国的周一。欢迎下载。

    java8 localtime 毫秒与时间互转 获取前一天六点钟时间

    java8 localtime 毫秒与时间互转 获取前一天六点钟时间

    java获取当前windows进程pid

    功能:获取java进程pid 进程可根据该pid调用exec自杀 注意事项:不能改变PidTool.java所在的包,否则需要重行生成dll。 编译命令中 "-PidTool.dll" 改为 "-FePidTool.dll",我整漏了! 使用方法: 1.javac PidTool...

    java获取amr格式语音长度

    本文将详细讨论如何通过Java获取AMR格式语音的长度。 首先,要理解AMR文件的结构。AMR文件是一种二进制文件,由一系列的帧组成,每个帧包含一定时间长度的语音数据。帧头包含了帧类型和压缩数据,而帧长度则根据...

    java得到的时间与系统时间差N个小时的解决办法.doc

    解决 Java 获取时间与系统时间差 N 个小时的问题 在 Java 中获取时间时,可能会出现与系统时间相差 N 个小时的情况。这种情况通常是由于 Java 的时区设置不正确所致。下面将详细介绍解决该问题的方法。 时区设置是...

    java获取网络音乐文件时长

    在Java编程中,获取网络音乐文件的时长是一项常见的任务,尤其在开发音乐播放器或者处理音频流的应用中。下面将详细介绍三种不同的方法来实现这一功能。 ### 方法一:使用`BufferedInputStream`和`AudioInputStream...

    java 获取USB外接设备信息demo

    在Java编程环境中,获取USB外接设备的信息是一个相对复杂的过程,因为Java标准库并不直接支持USB设备的交互。但是,通过使用第三方库如libusb或JavaUSB(也称为JUSB),我们可以实现这一功能。以下是对如何使用Java...

    java ipmi,vxipmi 通过java获取服务器信息,温度、风扇、内存等

    在Java IPMI和VxIPMI中,你可以通过以下步骤获取服务器信息: 1. **建立连接**:首先,你需要通过Java程序建立到目标服务器的IPMI连接。这通常涉及设置服务器的IP地址、端口、用户名和密码。VxIPMI库可能提供了一种...

Global site tag (gtag.js) - Google Analytics