怎样为JAVA应用程序设置时间区

怎样为JAVA应用程序设置时间区,第1张

一般java程序的时间区通常由运行这个程序的电脑的时间区来决定。但是有时候你需要为你的JAVA程序设置自己的时间区。
在不改变运行程序的电脑的时间区的前提下,假如你想改变程序的时间区,可以设置用户系统属性。当你开始运行虚拟机的时候你可以按照下面的方式设置系统属性:
java -Dusertimezone=UTC TimeZoneTip
下面这个类按照标准形式创造一个时间对象并且打印出来:
public class TimeZoneTip {
public static void main(String args[]) {
SystemoutPRintln(new javautilDate());}}
在没有进行用户时间区的属性设置的情况下,该程序输出的是:
Sun Jun 28 19:38:27 EDT 2003
在这种情况下,程序的时间区默认的是运行程序的电脑的时间区:东部日光时区。
当用户时间区属性设置为协调世界时的时候,程序的输出是:
假如你想要程序运行在一个非凡的时间区里,你可以按照上面的方式转换。还有其他的系统属性可影响你程序运行的环境,你可以看看虚拟机的工具文档,了解更多的信息。

java Club 108092625
获取指定日期建议使用Calendar ,通过Calendar的add方法你可以设置获取当前日期前多少天,后多少天
比如使用下面的工具类:
String currentData= DateTimeUtilsgetSystemDate() // 返回当前日期,格式为yyyy-MM-dd
String beforeFiveDays = DateTimeUtilsaddDays(currentData, -5); //前五天
String afterFiveDays = DateTimeUtilsaddDays(currentData, 5); //后五天
附上一个工具类:
import javatextParseException;
import javatextSimpleDateFormat;
import javautilCalendar;
import javautilDate;
/
日期时间工具类
/
public final class DateTimeUtil
{
private DateTimeUtil()
{
}
private static String DATE_FORMAT_PATTERN = "yyyyMMdd";
private static String TIME_FORMAT_PATTERN = "HHmmss";
/
转换字符串为日期

@param source
字符串形式的日期表示
@return Date
/
public static Date toDateTime(String source, String pattern)
{
Date date = null;
try
{
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
date = dateFormatparse(source);
}
catch (ParseException e)
{
// nothing
}
return date;
}
/
转换字符串为日期

@param source
字符串形式的日期<code>yyyyMMdd</code>
@return Date
/
public static Date toDate(String source)
{
return toDateTime(source, DATE_FORMAT_PATTERN);
}
/
转换字符串为时间

@param source
字符串形式的时间<code>HHmmss</code>
@return Date
/
public static Date toTime(String source)
{
return toDateTime(source, TIME_FORMAT_PATTERN);
}
/
将一种形式的字符串日期转换为另一种形式的字符串日期

@param source
原日期字符串
@param fromPattern
原日期字符串格式
@param toPattern
目标日期字符串格式
@return 新的日期字符串
/
public static String convert(String source, String fromPattern, String toPattern)
{
Date date = toDateTime(source, fromPattern);
if (date == null)
{
return null;
}
SimpleDateFormat dateFormat = new SimpleDateFormat(toPattern);
return dateFormatformat(date);
}
/
在指定的日期上面增加指定的天数

@param source
源日期(yyyyMMdd)
@param days
天数,正负皆可
@return
/
public static String addDays(String source, int days)
{
Date date = toDate(source);
Calendar calendar = CalendargetInstance();
calendarsetTime(date);
calendaradd(CalendarDATE, days);
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_PATTERN);
return dateFormatformat(calendargetTime());
}
/
在指定的日期上面增加指定的月数

@param source
原日期(yyyyMMdd)
@param months
月数,正负皆可
@return
/
public static String addMonth(String source , int months)
{
Date date = toDate(source);
Calendar calendar = CalendargetInstance();
calendarsetTime(date);
calendaradd(CalendarMONTH, months);
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_PATTERN);
return dateFormatformat(calendargetTime());
}
/
在指定的日期上面增加指定的年数

@param source
原日期(yyyyMMdd)
@param years
年数,正负皆可
@return
/
public static String addYears(String source, int years)
{
Date date = toDate(source);
Calendar calendar = CalendargetInstance();
calendarsetTime(date);
calendaradd(CalendarYEAR, years);
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_PATTERN);
return dateFormatformat(calendargetTime());
}
/
返回指定格式的时间字符串

@param format
(返回字符串的格式)
@return dateStr
@throws ParseException
/
public static String getSystemDateTime(String format)
{
Date date = new Date();
SimpleDateFormat simpDate = new SimpleDateFormat(format);
String dateStr = simpDateformat(date);
return dateStr;
}
/
取当前日期,格式yyyyMMdd

@return
/
public static String getSystemDate()
{
return getSystemDateTime(DATE_FORMAT_PATTERN);
}
/
取当前时间,格式HHmmss

@return
/
public static String getSystemTime()
{
return getSystemDateTime(TIME_FORMAT_PATTERN);
}
/
格式化指定日期

@param date
日期
@param pattern
格式串
@return
/
public static String format(Date date, String pattern)
{
SimpleDateFormat simpDate = new SimpleDateFormat(pattern);
String dateStr = simpDateformat(date);
return dateStr;
}
/
格式化指定日期

@param date
日期
@param pattern
格式串
@return
/
public static String format(long date, String pattern)
{
Date date2 = new Date(date);
return format(date2, pattern);
}
}

import javautilCalendar;
public class Clock {

private int hour, mintue, second;

public Clock(){
this(0, 0, 0);
}

public Clock(int hour, int minute, int second){
thishour = hour;
thismintue = minute;
thissecond = second;
}

public void incsecond(){
Calendar cal = CalendargetInstance();
calset(CalendarHOUR, hour);
calset(CalendarMINUTE, mintue);
calset(CalendarSECOND, second);

caladd(CalendarSECOND, 1);

thishour = calget(CalendarHOUR);
thismintue = calget(CalendarMINUTE);
thissecond = calget(CalendarSECOND);
}

public String toString(){
return hour + ":" +mintue + ":" + second;
}

public void setHour(int hour) {
thishour = hour;
}
public void setMintue(int mintue) {
thismintue = mintue;
}
public void setSecond(int second) {
thissecond = second;
}
public static void main(String[] args) {
}
}

Date
public Date(int year,
int month,
int day)
参数:
year - year 减去 1900,它必须是 0 到 8099 之间的数。(注意,8099 是由 9999 减去 1900 得到的。)
month - 0 到 11 之间的数
day - 1 到 31 之间的数
测试代码如下:
import javautilDate;
public class Test {
public static void main(String args[]){
Date date = new Date(2010-1900,1,10);
Systemoutprintln(date);
}
}
运行结果:
Wed Feb 10 00:00:00 CST 2010
希望对你有帮助。。。。。。仍有问题可以HI我。。。。

package threadtimer;
import javautilCalendar;
import javautilTimer;
import javautilTimerTask;
public class TimerTest {
    public static void main(String[] args) {
        Timer t = new Timer();
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                Systemoutprintln("Task is processing");// 此处可以插入自己想运行的代码片段
            }
        };
        Calendar c = CalendargetInstance();
        cset(CalendarMINUTE, 26);// 时间可以自己设置
        tschedule(task, cgetTime());
    }
}

可以通过死循环的方式来进行实现:第一步就是获取到当前的时间,之后和需要执行的时间进行比较,找出时间差,先让线程停止,之后到时见开始执行死循环,执行完成之后再设置线程等待时间,之后重复执行即可,代码举例如下:
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str = sdfformat(date);
//此处实现更改为其余的时间
Threadsleep(睡觉的时间);
for(;;){
//执行某一个方法
//此处实现更改为其余的时间
Threadsleep(睡觉的时间);
}
备注:上面的部分代码已经有说明,直接根据说明实现即可。这个只是一种简单的实现思路,通常复杂的都需要quazter来实现。

<SCRIPT language=JavaScript type=text/javascript>
var enabled=0;today=new Date();
var day;var date;var strTemp;
if(todaygetDay()==0) day="星期日"
if(todaygetDay()==1) day="星期一"
if(todaygetDay()==2) day="星期二"
if(todaygetDay()==3) day="星期三"
if(todaygetDay()==4) day="星期四"
if(todaygetDay()==5) day="星期五"
if(todaygetDay()==6) day="星期六"
H=todaygetHours();
if(H>0&&H<12) strTemp="上午好! "
if(H==12) strTemp="中午好! "
if((H>12&&H<18)||H==18) strTemp="下午好! "
if(H>18) strTemp="晚上好! "
date="<font color=#ff0000>"+strTemp+"</font>"+" 今天是:"+(todaygetYear())+"年"+(todaygetMonth()+1)+"月"+today getDate()+"日 "+day;
documentwrite(date);
</SCRIPT>
将这个js放在你放时间的地方就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13362762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-22
下一篇 2023-07-22

发表评论

登录后才能评论

评论列表(0条)

保存