我写了这段代码来将12h时间转换为24h时间,但有一个输入:
07:05:45pm
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Demo
{
static String timeConversion(String s)
{
// Complete this function
char a = 'a';
char l = 0, m = 0;
int l1 = 0, m1 = 0;
final int RADIX = 10;
char p = 'p';
String str = new String();
char t1 = 0;
int t2 = 0;
char arr[] = new char[10];
arr = s.toCharArray();
int a1 = Character.getNumericValue(arr[0]);
int a2 = Character.getNumericValue(arr[1]);
int t = (10*a1)+(a2);
char _1 = '1', _2 = '2';
if(arr[8]==p)
{
if((arr[0]==(_1))&&(arr[1]==(_2)))
{
char arr1[] = new char[8];
for(int i = 0; i < 8; i++)
arr1[i] = arr[i];
str=String.copyValueOf(arr1);
}
else
{
t2 = t + 12;
l1 = (t2%10);
t2/=10;
m1 = (t2%10);
m = Character.forDigit(m1, RADIX);
l = Character.forDigit(l1, RADIX);
arr[1] = l;
arr[0] = m;
char arr1[] = new char[8];
for(int i = 0; i < 8; i++)
arr1[i] = arr[i];
str=String.copyValueOf(arr1);
}
}
else
{
char arr1[] = new char[8];
for(int i = 0; i < 8; i++)
arr1[i] = arr[i];
str=String.copyValueOf(arr1);
}
return str;
}
public static void main(String[] args)
{
//Scanner in = new Scanner(System.in);
//String s = in.next();
String s = "07:05:45PM";
String result = timeConversion(s);
System.out.println(result);
}
}
正如您所看到的,我对输入进行了硬编码,因为intellij不允许我传递命令行参数,所以我还想知道如何在intellij中传递命令行论证。
此外,如果你在看了我的代码后能给我一些好的编码习惯,那将是非常有帮助的。
LocalTime
.parse("07:05:45PM", DateTimeFormatter.ofPattern("hh:mm:ssa"))
.toString()
另一种选择是使用内置的日期/时间API。
如果您使用的是Java8,请考虑使用新的Java.time API。与旧的API相比,它更容易、更少的bug和更少的错误倾向。
如果您使用的是Java<=7,那么可以使用ThreeTen Backport,这是Java8新的日期/时间类的一个很好的Backport。对于Android,您还需要ThreeTenABP(这里有更多关于如何使用它的信息)。
String s = "07:05:45PM";
// formatter with format "hour:minute:second" followed by "AM/PM"
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("hh:mm:ssa");
// parse and get the result as a String
String result = LocalTime.parse(s, fmt).toString();
System.out.println(result);
如果希望输出采用不同的格式,只需使用所需的模式创建另一个DateTimeFormatter
,并使用format
方法。有关所有可用模式的更多信息,请查看javadoc。
我找不到这个问题的解决方案,我正在从firebase获取数据,其中一个字段是时间戳,看起来像这样- Swift示例(作品): 我的飞镖尝试: 并且它返回的日期/时间是错误的。 更新:
当将同一时间从Sri Jeyawardenepura转换回珀斯时(1/31/2005 11:30 PM),它转换到1/1/2006 3:00 AM。 时区换算为什么会有一个小时的差?
问题内容: 我有一个UTC时间(纪元Unix时间),其格式设置为时间戳,如下所示。 (人类可读的值:2017年5月31日09:57:00) 我需要将格式化为Unix时间的时间戳转换为GPS时间格式,如下所示。 (人类可读的值:2017年5月31日09:57:00) 我需要一个python程序(算法对我来说很好)将Unix时间格式的时间戳转换为GPS时间格式的时间戳。 有一个PHP程序可以这样做。我
我正在尝试转换时区,但它增加了一天额外的java函数。 在上面的停用日期是25,当我给输入时,但在格式化后,它的转换为26,为什么有一天os得到了添加,如何避免它。
从我的数据库我检索值为: 我想要上面的: 我试着用当前的时间戳跟踪 实际时间戳:2018年6月22日星期五16:07:35 更新了,我不想更新,有没有办法保持原样?
主要内容:标签属性,JSF <f:convertDateTime>实例,JSF <f:convertDateTime>实例2标签用于将用户输入转换为指定的日期。 您可以通过将组件标签内的标签嵌套来将组件的数据转换为。 标签有几个属性,可以指定数据的格式和类型。 标签属性 属性 类型 描述 binding DateTimeConverter 它用于将转换器绑定到受委托Bean属性。 dateStyle String 它用于定义由指定的日期或日期字符串的日期部分的格式。 只适用于是或,如果未定义。