Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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 如何转换;东部标准时间晚上9:00“;添加到日期对象_Java_Android_Date_Time_Timezone - Fatal编程技术网

Java 如何转换;东部标准时间晚上9:00“;添加到日期对象

Java 如何转换;东部标准时间晚上9:00“;添加到日期对象,java,android,date,time,timezone,Java,Android,Date,Time,Timezone,我正在开发一个Android应用程序,需要一些基本的日期时间操作。我有一个日期对象(来自Java.util.Date)保存一个特定的日期。我需要加上一个具体的时间。我拥有的时间是一个字符串,格式如下:“美国东部时间晚上9:00” 我如何将这次“添加”到上一个日期?如果日期对象当前有:“4/24/10 00:00:00” 我如何将其改为:“4/24/10 09:00:00 EST” 如果可能的话,我更愿意在不使用外部库的情况下执行此操作。使用格式为“K:mm a vvv”的SimpleDataFo

我正在开发一个Android应用程序,需要一些基本的日期时间操作。我有一个日期对象(来自Java.util.Date)保存一个特定的日期。我需要加上一个具体的时间。我拥有的时间是一个字符串,格式如下:“美国东部时间晚上9:00”

我如何将这次“添加”到上一个日期?如果日期对象当前有:“4/24/10 00:00:00”

我如何将其改为:“4/24/10 09:00:00 EST”


如果可能的话,我更愿意在不使用外部库的情况下执行此操作。

使用格式为“K:mm a vvv”的SimpleDataFormat。解析函数将返回日期对象。

您意识到库的存在是因为由于(经常变化的)当地法律,日期非常复杂(日期讨论大约一半)。Android是否有java.util.DateFormat?@R0MANARMY:我知道它们很复杂,因此我请求帮助。如果不使用图书馆绝对不可能做我想做的事情,那么我会研究图书馆@Thilo:是的,它确实有java.util.DateFormat。@Bara:这不是不可能的,但如果你读了Jon Skeet关于它的文章,你就会明白为什么它很复杂而且容易出错。如果你这样做是为了一个完全为个人使用的应用程序,那也没什么大不了的。如果是你计划销售的东西,它会变得更复杂。例如,[某些日期]+9小时可能是上午8点、上午9点或上午10点,具体取决于地理位置和年份(还记得美国夏令时是如何提前两周的吗?)。这就是为什么最好使用一个将(希望)更新的库来解释这些更改的原因。@Bara:我知道的每个日期实现(当然不是很多)都存储为与给定时间点的偏移量。在.NET中(我使用的)起始点是0001年1月1日午夜。例如,今晚的午夜是634061952000000000。要获得今天上午9点的偏移量,您必须将[一些数字]添加到6340619520000000000。根据年份、地理位置和日期,[某些数字]会有所不同。有时是10小时,有时是9小时,有时是8小时。这就是为什么日期数学是复杂的,为什么使用图书馆更好。